Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何匹配CSS LI和设置宽度_Html_Css - Fatal编程技术网

Html 如何匹配CSS LI和设置宽度

Html 如何匹配CSS LI和设置宽度,html,css,Html,Css,我试图根据父级ul的类匹配li项,以便设置lis(内联块)的宽度 下面是相应的代码。我认为三个lis应该匹配。。。宽33% <html> <head> <style type="text/css"> BODY { text-align: center; } DIV.listing_wrap { border: 1px solid red; } DIV.listing_wrap UL {

我试图根据父级
ul
的类匹配
li
项,以便设置
li
s(内联块)的宽度

下面是相应的代码。我认为三个
li
s应该匹配。。。宽33%

<html>
<head>
  <style type="text/css">
    BODY {
      text-align: center;
    }
    DIV.listing_wrap {
      border: 1px solid red;
    }
    DIV.listing_wrap UL {
      border: 1px solid orange;
    }

    DIV.listing_wrap UL LI {
      display: inline-block;
      list-style-type: none;
      border: 1px solid blue;
    }
    DIV.listing_wrap UL.3col LI {
      width: 33%;
    }
  </style>
</head>
<body>
<div class="listing_wrap">
  <ul class="3col">
    <li class="t">1
    </li>
    <li class="t">2
    </li>
    <li class="r t">3
    </li>
  </ul>
</div>
</body>
</html>

身体{
文本对齐:居中;
}
DIV.u包装{
边框:1px纯红;
}
DIV.listing_wrap UL{
边框:1px实心橙色;
}
第二部分:列表{
显示:内联块;
列表样式类型:无;
边框:1px纯蓝色;
}
DIV.listing_wrap UL.3col LI{
宽度:33%;
}
  • 1
  • 2
  • 3

有什么想法吗

您不需要太多的类,但是您可以将
li
s与:

ul.listing_wrap li {
   width:33%;
}

类标识符不应以数字开头。对于测试,设置“col3”而不是“3col”,您将看到它工作

ul.3col>li
将匹配任何直接是
ul
同级的
li
与类
.3col


但是,如果您使用的是
%
宽度,您应该确保元素实际上有一个父元素,它可以与%表示的实际px相关,否则结果可能不可靠。

选择器越简单越好。所以这就足够了:

li { width: some other with for not 3 columns style}
.3col > li { width:33% }

另外,
3col
不是有效的类名。

或使用表格单元格。。。那么您就不必担心宽度:

.container { display: table; }
.container ul { display: table-row; }
.container ul li { display: table-cell; }

嘿,谢谢,是的,我知道这一点,但上面的示例是从更大的角度拍摄的,因此类的定义更明确。正如其他人所指出的,3col不是类的有效名称。但是,如果无法重写CSS规则,请尝试使用
!重要信息
在规则之后谢谢,我刚刚编辑了布局,因为它在DIV.listing_wrap UL LI下有一个宽度定义,并且这个类正在匹配,因此LIs实际上是正确的宽度。你能再看一次吗,谢谢…让我再次指出,上面的例子是从大图中取出来的,我想通过不同的UL类设置LI元素的宽度…通过你编辑的代码,我可以复制它。我编辑了我的答案。我目前在W3C上找不到说明“class”属性不应以数字开头的源代码。上面的“id”和“名称”很清楚