zoukankan      html  css  js  c++  java
  • 【CSS】Table样式

    一、table td的宽度详解

    Table只有Table的宽度是可以设置的,并且各个浏览器理解一致

    • 原则上应该将table的宽度设置成一个固定的值,而不应该设置成一个根据屏幕变化的值
    • Table的宽度为600px,Table的td所有宽度总和不到600px,浏览器会自动按照td的宽度的比例算出宽度
     <table style=" 600px;border-collapse: collapse;border:1px solid" >
                <tr>
                    <td style=" 200px;">我是200px</td>
                   <td style=" 200px;">我也是200px</td>
                </tr>
            </table>

    运行结果:两个td都是300px;

    • Table的宽度为600px,前两个td的宽度已经为600px,那么第三个td的宽度没有指定,这样的话第三个td的宽度是根据内容出现宽度的,然后前两个再按照比列计算、

            前两个td小于table宽度,那么最后一个td就起到补全的作用

    <table style=" 600px;border-collapse: collapse;border:1px solid">
            <tr>
                <td style=" 300px;">我是200px</td>
                <td style=" 300px;">我也是200px</td>
                <td>我是根据内容的</td>
            </tr>
        </table>
    • 如果一行文字太多,可以在<td>的样式中加入word-break: break-all(强制换行)

    二、两个table水平并排显示

      可以在外面再套个一行两列的大表格,左右两个单元格里再放表格

    <table>
    <tr>
    <td><table>....</table><td>
    <td><table>....</table><td>
    <td><table>....</table></td> //同样可以设置一行3个表以上的
    </tr>
    </table>
    View Code

    三、Table中双虚线

    <table border="0" cellpadding="0" cellspacing="0" style=" 100%; border-collapse: collapse">
                <tbody>
                    <tr>
                        <td style="border-bottom: black 3px double;  40%">
                            收費項目</td>
                        <td style="border-bottom: black 3px double;  20%">
                            價格</td>
                        <td style="border-bottom: black 2px double;  20%">
                            每日數量</td>
                        <td style="border-bottom: black 2px double; 20%">
                            港幣$</td>
                    </tr>
    <!--StartHotelExpert-->                <tr>
                        <td>
                            {FeeName}</td>
                        <td>
                            {Price}</td>
                        <td>
                            {Quantity}</td>
                        <td align="right">
                            {TotalPrice}</td>
                    </tr>
    <!--EndHotelExpert-->                <tr>
                        <td>
                            &nbsp;</td>
                        <td>
                            &nbsp;</td>
                        <td>
                            &nbsp;</td>
                        <td style="border-bottom: black 3px double; text-align: right; border-top: black 2px double">
                            <strong>{GrandTotal}</strong></td>
                    </tr>
                </tbody>
            </table>
    View Code

      在td中设置border,<td style="border-bottom: black 3px double; 40%">

      注意:双虚线时需要设置为3px,而2px会叠在一起,没有效果

    四、Table中tr间距的设置

      tr、td设置margin 无效;tr 设置padding无效、td设置padding有效

      table中的tr的默认display:table-row,虽然可以修改为display:block但是就失去了tr特有的显示效果,如(td自动对齐);

    解决方案:

    css的两个属性:

    border-collapse:collapse / separate  

    border-spacing:10px 10px;      // 设置相邻单元格的边框间的距离(仅用于“边框分离”模式)

    需要用border-collapse & border-spacing联合控制tr的间距.

    • border-collapse 属性设置表格的边框是否被合并为一个单一的边框,还是象在标准的 HTML 中那样分开显示。

    Separate: 默认值。边框会被分开。不会忽略 border-spacing 和 empty-cells 属性。

    Collapse: 如果可能,边框会合并为一个单一的边框。会忽略 border-spacing 和empty-cells 属性。

    •  border-spacing: 该属性指定分隔边框模型中单元格边界之间的距离。在指定的两个长度值中,第一个是水平间隔,第二个是垂直间隔。除非 border-collapse 被设置为 separate,否则将忽略这个属性。尽管这个属性只应用于表,不过它可以由表中的所有元素继承。

    如:<table style="border-collapse:separate; border-spacing:50px 10px;">

        <tr></tr></table>

    大致效果如下

    五、Table中列太多支持左右滚动

    <div id="divList" style="overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling: touch; 100%;">
        <table class="CommonTable" id="orderlist" style="margin-bottom: 10px; left: 0;table-layout:fixed;">

    white-space属性指定元素内的空白怎样处理:

      nowrap:文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。

    overflow-x 属性规定是否对内容的左/右边缘进行裁剪 - 如果溢出元素内容区域的话:

      auto:如果溢出框,则应该提供滚动机制。

    table-layout属性用来显示表格单元格、行、列的算法规则:

      默认是auto,可以改为fixe。

    固定表格布局:

    固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。

    在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。

    通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。

    自动表格布局:

    在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。

    此算法有时会较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容。

  • 相关阅读:
    TypeWonder – 在任何网站上实时预览字体效果
    16例美丽的国外服务和应用程序网站设计欣赏
    25款响应式,支持视网膜显示的 Wordpress 主题
    扁平化设计的最新趋势 – 长阴影(Long Shadow)
    HTML5 Maker – 在线轻松制作 HTML5 动画效果
    经典设计:30个另类的 404 not found 页面设计
    字体大宝库:设计师必备的专业免费英文字体
    小伙伴们惊呆了!10行 JavaScript 实现文本编辑器
    Glyphish – 精心打造的 iPhone & iPad 应用程序图标
    精品资源:40个实用的 PSD 贴纸模板《下篇》
  • 原文地址:https://www.cnblogs.com/peterYong/p/10761757.html
Copyright © 2011-2022 走看看