向第一个单元格

时间:2015-10-06 06:48:26

标签: html css html-table box-shadow

我有一个简单的表格,box-shadow,但我想从任何阴影中排除第一个单元格。

我尝试将box-shadow: none添加到该单元格,但它不会覆盖整个表格上的阴影。我甚至不确定这是否可能?

HTML:

<table>
    <tr class="header">
        <td></td>
        <td>hello</td>
        <td>hello</td>
        <td>hello</td>
    </tr>
    <tr>
        <td>row 1</td>
        <td>row 1</td>
        <td>row 1</td>
        <td>row 1</td>
    </tr>
    <tr>
        <td>row 2</td>
        <td>row 2</td>
        <td>row 2</td>
        <td>row 2</td>
    </tr>
    <tr class="last-row">
        <td>row 3</td>
        <td>row 3</td>
        <td>row 3</td>
        <td>row 3</td>
    </tr>
</table>     

CSS:

table {
    width: 80%;
    margin: 30px;
    box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12);
}
.header {
    height: 50px;
    vertical-align: middle;
    text-align: center;
    color: #fff;
    background: red;
}
.header td {
    border-bottom: 2px solid #ccc;
}
.header td:first-of-type {
    background: #fff;
}
.last-row td {
    border: none !important;
}
tr td:not(.header) {
    height: 60px;
    text-align: center;
    border-bottom: 1px solid #ccc;
}

Here's a fiddle to show an example of a table

这可能吗?

更新

第一个单元格是指行header - table .header td {}

的第一个单元格

这是一个完美结果的图像:

enter image description here

3 个答案:

答案 0 :(得分:1)

您应该在box-shadow中添加tbody并在box-shadow中添加thead以使用它,您可以将其排除在外,以下内容将为您提供更多信息。

&#13;
&#13;
	table {
    width: 80%;
    margin: 30px;
    overflow: hidden;padding: 5px;
    
}
.header {
    height: 50px;
    vertical-align: middle;
    text-align: center;
    color: #fff;
    background: red;
}
.header td {
    border-bottom: 2px solid #ccc;
}
.header th:first-of-type {
    background: #fff;
}
.last-row td {
    border: none !important;
}
tr td:not(.header) {
    height: 60px;
    text-align: center;
    border-bottom: 1px solid #ccc;
}
table tbody{
	box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12);
}
table thead{
	position: relative;
}
table thead:before{
    box-shadow: 3px -2px 2px rgba(0, 0, 0, 0.2);
    content: "";
    height: 109%;
    position: absolute;
    right: 0;
    top: 0;
    width: 75%;
    z-index: -1;
}
&#13;
<table>
	<thead>
	    <tr class="header">
	        <th></th>
	        <th>hello</th>
	        <th>hello</th>
	        <th>hello</th>
	    </tr>
    </thead>
    <tbody>
	    <tr>
	        <td>row 1</td>
	        <td>row 1</td>
	        <td>row 1</td>
	        <td>row 1</td>
	    </tr>
	    <tr>
	        <td>row 2</td>
	        <td>row 2</td>
	        <td>row 2</td>
	        <td>row 2</td>
	    </tr>
	    <tr class="last-row">
	        <td>row 3</td>
	        <td>row 3</td>
	        <td>row 3</td>
	        <td>row 3</td>
	    </tr>
    </tbody>    
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这可以通过给该单元格提供ID或类属性,然后将css应用于您喜欢的元素,然后调用第一个单元格,如#firstCell并且不给它背景:无;颜色:黑色;通常的方式。

答案 2 :(得分:0)

这是我想出来的,不完美但是这个技巧足够接近理想的结果

我将第一个单元格更改为:

<td style="position: relative"><div class="overflow"></div></td>

CSS:

.overflow{
    position: absolute;
    background: #fff;
    bottom: 0;
    right: 0;
    width: 105%;
    height: 105%;
}

You can see it here