首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用节点给“独生子女”一个更长的垂直线?

如何使用节点给“独生子女”一个更长的垂直线?
EN

Stack Overflow用户
提问于 2022-10-30 07:50:30
回答 1查看 50关注 0票数 1

见图--在此树中,“独生子女”与其他儿童不水平对齐:

我可以看到这是由CCS造成的,因为CCS从单个子节点的顶部删除了空间,但是删除CSS显示垂直行太短:

有谁能解决如何使独生子女与其他孩子水平一致的问题?

谢谢

代码语言:javascript
复制
.genealogy-body{
    white-space: nowrap;
    overflow-y: hidden;
    padding: 50px;
    min-height: 500px;
    padding-top: 10px;
    text-align: center;
}
.genealogy-tree{
  display: inline-block;
}
.genealogy-tree ul {
    padding-top: 20px; 
    position: relative;
    padding-left: 0px;
    display: flex;
    justify-content: center;
}
.genealogy-tree li {
    float: left; text-align: center;
    list-style-type: none;
    position: relative;
    padding: 20px 5px 0 5px;
}
.genealogy-tree li::before, .genealogy-tree li::after{
    content: '';
    position: absolute; 
  top: 0; 
  right: 50%;
    border-top: 2px solid #ccc;
    width: 50%; 
  height: 18px;
}
.genealogy-tree li::after{
    right: auto; left: 50%;
    border-left: 2px solid #ccc;
}
/*This removes left & right connectors from elements without any siblings*/
*.genealogy-tree li:only-child::after, .genealogy-tree li:only-child::before {
    display: none;
}
/*This removes space from the top of single children BUT IT CAUSES MISALIGNMENT SO NEED TO EXTEND LINE SOMEHOW*/
.genealogy-tree li:only-child{ 
    padding-top: 0;
}
/*This removes left connector from first child and right connector from last child*/
.genealogy-tree li:first-child::before, .genealogy-tree li:last-child::after{
    border: 0 none;
}
/*This adds back the vertical connector to the last nodes*/
.genealogy-tree li:last-child::before{
    border-right: 2px solid #ccc;
    border-radius: 0 5px 0 0;
    -webkit-border-radius: 0 5px 0 0;
    -moz-border-radius: 0 5px 0 0;
}
.genealogy-tree li:first-child::after{
    border-radius: 5px 0 0 0;
    -webkit-border-radius: 5px 0 0 0;
    -moz-border-radius: 5px 0 0 0;
}
/*This adds downwards connectors from parents*/
.genealogy-tree ul ul::before{
    content: '';
    position: absolute; top: 0; left: 50%;
    border-left: 2px solid #ccc;
    width: 0; height: 20px;
}
.genealogy-tree li a{
    text-decoration: none;
    color: black;
    font-family: "Lora", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 11px;
    text-align: center;
    display: inline-block;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
}
代码语言:javascript
复制
<body>
    
        
<div class="body genealogy-body genealogy-scroll">
    <div class="genealogy-tree">
    <ul>
        <li>
        <a>
        <div class="member-view-box">
        <div class="member-image">
        <img src="../images/trees/_tree_blank.jpg" alt="refresh your browser...">
        <div class="member-details">
        <span><strong>Top<br>Line</strong></span>
        </div>
        </div>
        </div>
        </a>
        <ul>
            <li>        
            <a>
            <div class="member-view-box">
            <div class="member-image">
            <div class="member-details">
            <span><strong>PARENT<br>WITH<br>ONE CHILD</strong></span>
            </div>
            </div>
            </div>
            </a>
            <ul>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>ONLY<br>CHILD</strong><br>* line short *</span>
                </div>
                </div>
                </div>
                </a>
                </li>
            </ul>
            </li>
            <li>
            <a>
            <div class="member-view-box">
            <div class="member-image">
            <div class="member-details">
            <span><strong>PARENT<br>WITH<br>TWO CHILDS</strong></span>
            </div>
            </div>
            </div>
            </a>
            <ul>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>Child 1<br>of 2</strong></span>
                </div>
                </div>
                </div>
                </a>
                </li>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>Child 2<br>of 2</strong></span>
                </div>
                </div>
                </div>
                </a>
                </li>
            </ul>
            </li>
        </ul>
        </li>
    </ul>
    </div>
</div>
    

    
</body>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-30 16:57:44

尝试下面的代码片段,以下是更改

only-child

  • removed padding

  • removed
  • 为第一个列表元素

添加了伪类。

代码语言:javascript
复制
*.genealogy-tree li:last-child:only-child::after, .genealogy-tree li:last-child:only-child::before {
  content: '';
  position: absolute; 
  top: 0; 
  left: 50%;
  width: 0;
  height: 18px;
  border-radius: 0;
}

.genealogy-tree > ul > li::after, .genealogy-tree > ul > li::before {
  display: none
}

.genealogy-tree li:only-child{ 
/* padding-top: 0; */
}

代码语言:javascript
复制
.genealogy-body{
    white-space: nowrap;
    overflow-y: hidden;
    padding: 50px;
    min-height: 500px;
    padding-top: 10px;
    text-align: center;
}
.genealogy-tree{
  display: inline-block;
}
.genealogy-tree ul {
    padding-top: 20px; 
    position: relative;
    padding-left: 0px;
    display: flex;
    justify-content: center;
}
.genealogy-tree li {
    float: left; text-align: center;
    list-style-type: none;
    position: relative;
    padding: 20px 5px 0 5px;
}
.genealogy-tree li::before, .genealogy-tree li::after{
    content: '';
    position: absolute; 
  top: 0; 
  right: 50%;
    border-top: 2px solid #ccc;
    width: 50%; 
  height: 18px;
}
.genealogy-tree li::after{
    right: auto; left: 50%;
    border-left: 2px solid #ccc;
}

*.genealogy-tree li:last-child:only-child::after, .genealogy-tree li:last-child:only-child::before {
    content: '';
    position: absolute; 
  top: 0; 
left: 50%;
width: 0;
  height: 18px;
  border-radius: 0;
}

.genealogy-tree > ul > li::after, .genealogy-tree > ul > li::before {
  display: none
}

/*This removes space from the top of single children BUT IT CAUSES MISALIGNMENT SO NEED TO EXTEND LINE SOMEHOW*/
.genealogy-tree li:only-child{ 
/*     padding-top: 0; */
}
/*This removes left connector from first child and right connector from last child*/
.genealogy-tree li:first-child::before, .genealogy-tree li:last-child::after{
    border: 0 none;
}
/*This adds back the vertical connector to the last nodes*/
.genealogy-tree li:last-child::before{
    border-right: 2px solid #ccc;
    border-radius: 0 5px 0 0;
    -webkit-border-radius: 0 5px 0 0;
    -moz-border-radius: 0 5px 0 0;
}
.genealogy-tree li:first-child::after{
    border-radius: 5px 0 0 0;
    -webkit-border-radius: 5px 0 0 0;
    -moz-border-radius: 5px 0 0 0;
}
/*This adds downwards connectors from parents*/
.genealogy-tree ul ul::before{
    content: '';
    position: absolute; top: 0; left: 50%;
    border-left: 2px solid #ccc;
    width: 0; height: 20px;
}
.genealogy-tree li a{
    text-decoration: none;
    color: black;
    font-family: "Lora", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 11px;
    text-align: center;
    display: inline-block;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
}
代码语言:javascript
复制
<body>
    
        
<div class="body genealogy-body genealogy-scroll">
    <div class="genealogy-tree">
    <ul>
        <li>
        <a>
        <div class="member-view-box">
        <div class="member-image">
        <img src="../images/trees/_tree_blank.jpg" alt="refresh your browser...">
        <div class="member-details">
        <span><strong>Top<br>Line</strong></span>
        </div>
        </div>
        </div>
        </a>
        <ul>
            <li>        
            <a>
            <div class="member-view-box">
            <div class="member-image">
            <div class="member-details">
            <span><strong>PARENT<br>WITH<br>ONE CHILD</strong></span>
            </div>
            </div>
            </div>
            </a>
            <ul>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>ONLY<br>CHILD</strong><br>* line short *</span>
                </div>
                </div>
                </div>
                </a>
                </li>
            </ul>
            </li>
            <li>
            <a>
            <div class="member-view-box">
            <div class="member-image">
            <div class="member-details">
            <span><strong>PARENT<br>WITH<br>TWO CHILDS</strong></span>
            </div>
            </div>
            </div>
            </a>
            <ul>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>Child 1<br>of 2</strong></span>
                </div>
                </div>
                </div>
                </a>
                </li>
                <li>
                <a>
                <div class="member-view-box">
                <div class="member-image">
                <div class="member-details">
                <span><strong>Child 2<br>of 2</strong></span>
                </div>
                </div>
                </div>
                </a>
                </li>
            </ul>
            </li>
        </ul>
        </li>
    </ul>
    </div>
</div>
    

    
</body>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74251349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档