2014-10-03 74 views
0

是否有可能使用少于做一个条件?我想要的逻辑是,如果一个表> tr> td有一个a标记,那么在a标记上应用padding: 20px。如果td中没有a标记,则在td本身上应用填充。有条件地应用基于子元素的存在的css

+0

少只是一个CSS预处理器。你将不得不定义规则来处理这两种情况。 – PSL 2014-10-03 01:09:40

回答

2

你提出的建议在CSS中是不可能的,所以LESS也无法做到这一点。

然而,我们可以尝试巧妙:

table > tr > td { 
    padding-top: 20px; 
} 
table > tr > td a { 
    margin-top: -20px; 
    padding-top: 20px; 
} 

它看起来奇怪,“哈克”,但如果我可以,所以做你的要求:)

+0

这有效。关键是,用户可以单击“a”表单元格中的整个区域,而不仅仅是链接。这需要在'a'标签上应用填充,而不是'td'。但是'td'没有'a'标签。 – Justin 2014-10-03 01:30:54

+0

然后,另一种解决方案是使用直接子操作符:'>'。这会更优雅:'table> tr> td> * {padding:20px;}' – 2014-10-03 07:54:10