综合实战1——渲染表格

163 阅读4分钟

(一)表格:

1.语法:

1.table>tr>th*5 + 回车/tab
2.tr>td*5 + 回车/tab

2.居中(放在head中的style里面):

在head中
<style>
        h2{
            text-align: center; 
        }   
  </style>

2.表格加边框(放在里面即可):

table,th,td{
    border:1px solid #000;
}

1px是边框的宽度,#000是边框的颜色

image-20250508213420762

3合并边框(放在head的style中) (1)

 table{
        border-collapse: collapse; 
     }

(2)两种合并方式: 在 HTML 和 CSS 里,border-spacing: 0;与border-collapse: collapse;都和表格边框样式相关,不过它们的作用有所不同。

  1. border-spacing: 0; border-spacing属性规定的是相邻单元格边框之间的间距。其默认值由浏览器决定,一般为2px。当你把border-spacing设成0时,相邻单元格边框之间就没有间距了。 要注意的是,border-spacing属性只有在border-collapse属性值为separate(默认值)时才会生效。以下是示例代码:
html
<!DOCTYPE html>
<html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        table {
            border-spacing: 0;
        }
​
        td {
            border: 1px solid black;
        }
    </style>
</head><body>
    <table>
        <tr>
            <td>单元格1</td>
            <td>单元格2</td>
        </tr>
        <tr>
            <td>单元格3</td>
            <td>单元格4</td>
        </tr>
    </table>
</body></html>

在这个示例中,表格的相邻单元格边框之间没有间距。

  1. border-collapse: collapse; border-collapse属性用于定义表格边框的合并方式。它有两个常用值:separate和collapse。 separate:默认值,相邻单元格边框会分开显示。 collapse:相邻单元格边框会合并成一个单一的边框。 以下是示例代码:
html
<!DOCTYPE html>
<html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        table {
            border-collapse: collapse;
        }
​
        td {
            border: 1px solid black;
        }
    </style>
</head><body>
    <table>
        <tr>
            <td>单元格1</td>
            <td>单元格2</td>
        </tr>
        <tr>
            <td>单元格3</td>
            <td>单元格4</td>
        </tr>
    </table>
</body></html>

在这个示例中,相邻单元格的边框合并成了一个单一的边框。 总结 border-spacing: 0;是在相邻单元格边框分开显示时,让它们之间没有间距。 border-collapse: collapse;则是把相邻单元格的边框合并成一个单一的边框。 如果你希望表格边框之间没有间距,并且看起来像是一个整体,使用border-collapse: collapse;会更合适。

经过测试下来:使用table border-spacing: 0;会让边框更粗应为是重合不是合并

4.表格高度: 表格最低高度为刚好容纳文字的高度,即使参数(px)设置再小也是刚好容纳文字的高度

 table{
            border-collapse: collapse; 
            height: 80px;
        }   

综合实战1——渲染表格

image-20250509190407410.png

(一)表格的固定内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 样式设置 -->
    <style>
        /* 标题设置 */
        h2{
               /* 标题h2居中 */
            text-align: center; 
        }
        /* 调节边框的颜色和宽度 */
        table,th,td{
            border: 1px solid #000;
        }
      
        table{
              /* 合并边框 */
            border-collapse: collapse; 
            /* 表格的高度和宽度 */
            height: 80px;
            width: 600px;
            /* 表格居中 */
            margin: 0 auto;
            text-align: center;
        }
        th{
            padding:5px 30px;
I   
    </style>
</head>
<body>
    <h2>订单确认</h2>
    <!-- 显示表格 -->
    <table>
        <tr>
            <th>商品名称</th>
            <th>商品价格</th>
            <th>商品数量</th>
            <th>总价</th>       
            <th>收货地址</th> 
        </tr>
        <tr>
            <td>小米青春版plus</td>
            <td>1999元</td>
            <td>10</td>
            <td>19990</td>
            <td>武汉黑马1</td>
        </tr>
    </table>
</body>
</html>

(二)交互效果(使用js)(js写在body的

1.用户输入

    <script>
        /* 1.用户输入 */
        let price = prompt("请输入商品价格");
         let num = prompt("请输入商品数量");
         let address = prompt("请输入收货地址");
        
        /* 2.计算总额 */
        let total = price*num;
        /* 3.页面打开 */
​
        </script>

此时price是字符型,因为要计算所以转换为整形

let price = +prompt//此时price是 整形
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 样式设置 -->
    <style>
        /* 标题设置 */
        h2{
               /* 标题h2居中 */
            text-align: center; 
        }
        /* 调节边框的颜色和宽度 */
        table,th,td{
            border: 1px solid #000;
        }
      
        table{
              /* 合并边框 */
            border-collapse: collapse; 
            /* 表格的高度和宽度 */
            height: 80px;
            width: 600px;
            /* 表格居中 */
            margin: 0 auto;
            text-align: center;
        }
        th{
            padding:5px 30px;
I   
    </style>
</head>
<body>
    <h2>订单确认</h2>
    <!-- 显示表格 -->
    <table>
        <tr>
            <th>商品名称</th>
            <th>商品价格</th>
            <th>商品数量</th>
            <th>总价</th>       z
            <th>收货地址</th> 
        </tr>
        <tr>
            <td>小米青春版plus</td>
            <td>1999元</td>
            <td>10</td>
            <td>19990</td>
            <td>武汉黑马1</td>
        </tr>
    </table>
    <script>
        /* 1.用户输入 */
        let price = +prompt("请输入商品价格");
         let num = +prompt("请输入商品数量");
         let address = prompt("请输入收货地址");
        
        /* 2.计算总额 */
        let total = price * num;
    
        /* 3.页面打印渲染 */
            
​
        </script>
</body>
</html>

2.渲染

(1)需求:打印表格并将数据打入表格中 (2)页面打印 ·语法:

document.write (`  `);//反引号是模板字符串:这个可有可不有。但反引号支持换行,模板字符串支持换行

因为要打印,所以需要将表格代码放入

然后需要将固定值换成输入的变量

image-20250510185105998.png

image-20250510185124654.png

(三)成品

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 样式设置 -->
    <style>
        /* 标题设置 */
        h2{
               /* 标题h2居中 */
            text-align: center; 
        }
        /* 调节边框的颜色和宽度 */
        table,th,td{
            border: 1px solid #000;
        }
      
        table{
              /* 合并边框 */
            border-collapse: collapse; 
            /* 表格的高度和宽度 */
            height: 80px;
            width: 600px;
            /* 表格居中 */
            margin: 0 auto;
            text-align: center;
        }
        th{
            padding:5px 30px;
I   
    </style>
</head>
<body>
    <h2>订单确认</h2>
    <!-- 显示表格 -->
    <script>
        /* 1.用户输入 */
        let price = +prompt('请输入商品价格')
         let num = +prompt('请输入商品数量')
         let address = prompt('请输入收货地址')
        
        /* 2.计算总额 */
        let total = price * num
        /* 3.页面打印渲染 */
        /* 打印表格 */
        document.write(`
            <table>
                <tr>
                    <th>商品名称</th>
                    <th>商品价格</th>
                    <th>商品数量</th>
                    <th>总价</th>       z
                    <th>收货地址</th> 
                </tr>
                <tr>
                    <td>小米青春版plus</td>
                    <td>${price}元</td>
                    <td>${num}个</td>
                    <td>${total}元</td>
                    <td>${address}</td>
                </tr>
            </table>
        `)
    </script>
</body>
</html>