html - CSS - 向一个 td 添加填充会更改所有其他行的填充

标签 html css html-table padding cellpadding

这是我的 HTML:

<table class='htmlCommentTable'>

    <tr>
        <td class='thirdtd'>
            <img class='clickedFlame' src="image.png" />
        </td>

        <td class='secondtd'>
            name <br /> first comment
        </td>
    </tr>

    <tr>
        <td class='thirdtd' style="padding-left:80px"> <!-- NOTE: I added a left padding to this single td -->
            <img class='clickedFlame' src="image.png"  />       
        </td>

        <td class='secondtd'>
            name <br /> second comment
        </td>
    </tr>

    <tr>
        <td class='thirdtd'>
            <img class='clickedFlame' src="image.png" />
        </td>

        <td class='secondtd'>
            name <br /> third comment
        </td>
    </tr>

</table>

这是我的 CSS:

.htmlCommentTable td {
    border-collapse: seperate;
    vertical-align: top;
    padding: 10px;
    border: 1px solid black;
    margin: 0;
}

.thirdtd {
    width: 90px;
}

.secondtd {
    width: 100%;
    position: relative;
}

如您所见,我所做的只是向单个 td(第二行中的第一个 td)添加左填充,但出于某种原因,当我这样做时,它为第一个 td 的第二个 td 添加了一个左填充第三排也是如此。怎么会?我想要它,以便只有第二行中的第一个 td 获得左侧填充,而表格的其余部分保持不变。

注意:我在 Chrome 和 IE 8 - IE 10 上对此进行了测试。

最佳答案

您问题中的代码,可以使用:http://jsfiddle.net/We5QF/

如果您希望第一行和第三行(在第 1 列中)的宽度与第二行的宽度不同,您必须按照此处的建议做一些棘手的事情:html table cell width for different rows

如果您要在同一列中使用不同的宽度,您可能想尝试使用 div 而不是表格。像这样:http://jsfiddle.net/4ZB85/2/

HTML

<div class="htmlCommentTable">

    <div class="row">
        <div class="col1">
            <img class="clickedFlame" src="image.png" />
        </div>

        <div class="col2">
            name <br /> first comment
        </div>
    </div>

    <div class="row">
        <div class="col1 extraspace">
            <img class="clickedFlame" src="image.png" />
        </div>

        <div class="col2">
            name <br /> second comment
        </div>
    </div>

    <div class="row">
        <div class="col1">
            <img class="clickedFlame" src="image.png" />
        </div>

        <div class="col2">
            name <br /> third comment
        </div>
    </div>

</div>

CSS

div.htmlCommentTable {
    width: 100%;
}

div.row {
    width: 100%;
    margin-bottom: 20px;
    border: 1px solid #000;
    clear: both;
}

div.col1 {
   margin: 0;
   padding: 10px;
   display: inline-block;
   vertical-align: top;
   background-color: #efefef;
}

div.col2 {
   display: inline-block;
   vertical-align: top;
   padding: 10px;
   background-color: #dedede;
   border-left: 1px solid blue;
}

div.extraspace {
    padding-left: 90px;
}

关于html - CSS - 向一个 td 添加填充会更改所有其他行的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643052/

相关文章:

forms - HTML5 中的验证。 :invalid classe after submit

html - 如何去除网页右侧的空白区域?

jquery - 更改文本框的位置

html - 悬停 <tr> 会影响表格中的其他 <tr>

jquery - 有没有办法在 html 表格的最后一行显示隐藏的 div

php - 需要在HTML表格中以特定格式显示mysql表数据

html - Bootstrap Carousel 图像过渡幻灯片不起作用

jquery - 动画高度在滚动时无法正常工作

java - JAVA FX 2.0 如何去除TableView 中的空行

html - 元标记未在 Google 上更新