我可以主要使用CSS3基于子元素设置父元素的样式吗?

时间:2016-08-10 09:28:41

标签: css3

示例:只有包含LABEL的DIV才能获得样式%h\n

以下尝试无效:

-printf

不是标签,但div应该有这种风格。

5 个答案:

答案 0 :(得分:0)

您无法使用CSS基于子元素设置父元素的样式。

因为,您似乎正在尝试将标签元素对齐,您可以使用float执行此操作,如下所示:

div label:only-child {
    float: right;    /* instead of text-align: right */
}

更新(父级有弹性箱布局):

div label:only-child {
  flex: auto;
  text-align: right;
}

答案 1 :(得分:0)

你可以用这种方式 div class =“test”style =“text-align:left” div class =“test”style =“text-align:right”

答案 2 :(得分:0)

解决方案是将标签和显示属性的宽度设置为阻止。这是代码

div{
  width: 500px;
  padding: 20px;
  background: #fff;
  border: 1px solid #ddd;
}
div>label:only-child{
    text-align: right;
    width: 100%;
    display: block;
}
<div>
  <label>adfasdf</label>
</div>

答案 3 :(得分:0)

这个不能用CSS完成。

CSS =层叠样式表因此根据定义,您可以从HTML结构的顶部到底部选择元素,而不是相反。

因此您无法选择parent,具体取决于children

你可以用JQ做到这一点,有很多方法可以做到这一点,但这将是其中之一:

$( "div:has(label)" ).css({ "text-align":"right" });
.div {
  height:50px;
  border:2px solid red;
   margin:2px 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div">
<label>Has Label</label>
</div>
<div class="div">
<p>
i am NOT a label
</p>
</div>
<div class="div">
<label>Has Label</label>
</div>

答案 4 :(得分:-1)

你不能只在CSS中这样做。好吧,当然你可以将类添加到div但没有父选择器。 但将来会有(选择器lvl4 - 见最后一行选择器概述):https://www.w3.org/TR/selectors4/