我正在尝试将伪元素应用于 a<tr>
但事实证明它没有按预期工作。我不确定我是否遗漏了任何东西,或者这根本不可能。
这是一个 jsfiddle 示例:http: //jsfiddle.net/jDwCq/
请注意,如果您将显示更改tr
为display: block;
,则伪元素将显示,但它显示为块而不是我需要的表格。
有可能还是我注定要失败?
我正在尝试将伪元素应用于 a<tr>
但事实证明它没有按预期工作。我不确定我是否遗漏了任何东西,或者这根本不可能。
这是一个 jsfiddle 示例:http: //jsfiddle.net/jDwCq/
请注意,如果您将显示更改tr
为display: block;
,则伪元素将显示,但它显示为块而不是我需要的表格。
有可能还是我注定要失败?
table tr:before{
position: relative; /* Needed for pseudo elem */
display: block; /*Uncomment me and see what happens*/
}
这应该工作......
只需设置display: inline-block;
为 TD,并给它们一个宽度(每个约 33%)......并position: absolute
从伪元素中删除。
就是这样:http: //jsfiddle.net/jDwCq/6/
table tr {
/*position: relative; /* (REALLY NOT) Needed for pseudo elem */
display: block; /*Uncomment me and see what happens*/
}
td {
width: 32.9%; /* ADD THIS */
display: inline-block; /* AND THIS */
}
table tr:after {
/*position: absolute; REMOVE THIS TOO */
top: 0px;
left: 0px;
display: block;
content: '';
text-indent: -99999px;
background: red;
height: 2px;
/*width: 100%; NOT NEEDED */
}
tr:hover td{
background: pink or whatever;
}
tr:hover td:after{
background: yellow;
}
我认为不需要伪元素。
我会说,直接在一行内有一个不是单元格的元素是在要求痛苦。不过,您总是可以在目标行的每个单元格中都有一个伪元素。使用正确的 css,不会有明显的差异。
示例:http: //jsfiddle.net/jDwCq/7/
::before
要使用和/或伪元素使行看起来更大,::after
您必须将这些元素应用于td
元素,但td
根据 的:hover
选择元素tr
:
td::before,
td::after {
/* defines the default states/sizes */
height: 0;
display: block;
content: '';
}
tr:hover td::before,
tr:hover td::after {
/* adjusts attributes based on the parent tr's :hover event */
height: 1em;
}
但是,如果目标是“看起来很酷1 ”,那么我建议调整td
元素本身的样式(因为这样它们可以被动画化),而不是使用只是“出现”的伪元素:
td {
padding: 0;
-moz-transition: padding 1s linear;
-ms-transition: padding 1s linear;
-o-transition: padding 1s linear;
-webkit-transition: padding 1s linear;
transition: padding 1s linear;
}
tr:hover td {
padding: 1em 0;
-moz-transition: padding 1s linear;
-ms-transition: padding 1s linear;
-o-transition: padding 1s linear;
-webkit-transition: padding 1s linear;
transition: padding 1s linear;
}
当然,使用这种方法,您可以在color
、background-color
、height
、font-size
border
(-width
或-color
) 上使用过渡效果,并调整时间(以及缓动)。
all
要为多个属性设置动画,使用关键字(而不是单个属性名称)更容易。
padding
看起来“还可以”。也许,你可能不得不咨询你自己的孩子亲戚,以了解替代方法的酷炫之处。