列表的父级和子级之间的宽度,以及父级的垂直居中



我不知道我应该如何解释,但我想自动宽度项目1和2之间的区域(空间)。我不确定它是ul还是li....

我还想让item 1垂直于其子元素的中心。我尝试了很多方法来处理CSS,但我找不到一个解决方案。请大家多多指教。

现在像

-----                                                     -------
| P |              I want to be like this  ->             |  C  |
-----                                                     -------
     -----                                     -------    -------
     | C |                                     |  P  |    |  C  |
     -----                                     -------    -------
     -----                                                -------
     | C |                                                |  C  |
     -----                                                -------
     -----
     | C |
     -----  
                         the width of P will auto change
CSS

.div {
    border: 1px solid #666;
    overflow: hidden;
    display: table;
    height: 30px;
    width: 100px;
}
ul{
    list-style:none;    
}
HTML

<ul>
  <li>
    <div class="div">Item 1</div>
<ul>
  <li>
    <div class="div">Item 1.1</div>
</li>
<li>
  <div class="div">Item 1.2</div>
</li>
<li>
  <div class="div">Item 1.3</div>
</li>
<li>
  <div class="div">Item 1.4</div>
</li>
</ul>
</li>
<li>
  <div class="div">Item 2</div>
</li>
<li>
  <div class="div">Item 3</div>
</li>
<li>
  <div class="div">Item 4</div>
</li>
</ul>

我认为小提琴只是一个近似的小提琴。但是看看这个。http://jsfiddle.net/nQvEW/138/

我所做的是,我认为第一个li元素是类parent的父元素,并将它们相对于主页面定位。

.parent {
position:relative;
}
其次,我考虑了父元素中的ul,并将其相对于父元素li(包含父元素li和子元素ul)进行了定位,并适当地应用了left属性。
.parent ul{
position:relative;
left:20%;
}

第三,我将父元素中的div元素定位为相对于父元素的绝对值。你可以稍微调整一下,最上面的百分比。这实际上很重要,因为为了保持子元素的边距,父元素需要向下移动。理想情况下,顶部属性值应该是50%。

.parent .div {
position:absolute;
top:40%;
}

处理这个问题的方法有很多。在你的例子中,你并没有真正表达一个整体的宽度,所以让我们说你想要P和C都在一起。

<div class="containBoth" style="width:500px;">
  <div class="c" style="float:right;width:300px;">
    <ul>
    <li>c</li>
    <li>c</li>
  </ul>
 </div>
<div class="p" style="margin-right:20px">
    P 
</div>
</div><!-- close containBoth-->
当然,我使用内联样式是为了提高速度。你应该像我一样分配类,把实际的css放到一个表格中。我把这两件事都做了给你们看。请记住,当你向右浮动一些东西时,它需要在html文档中首先出现,也就是content/div/etc。

最新更新