CSS 家谱与名称长度的对齐问题

2023-12-27

我从 CSS3 Family Tree 的实验性多父版本开始:http://thecodeplayer.com/experiment/css3-family-tree/2 http://thecodeplayer.com/experiment/css3-family-tree/2

不过我有一些对齐问题有多个父母(家谱中的合作伙伴),这似乎是由框中文本的长度引起的。如果两个盒子的文本长度相同,它们就会排成一行,否则越长的盒子越高,并且高度差与长度差成正比。

而且,任何一个孩子自己似乎都会飘到左边,而不是像他们应该的那样坐在中间。编辑:这部分已得到答复

示例如下:http://jsfiddle.net/7g7fz2tL/5/ http://jsfiddle.net/7g7fz2tL/5/

* {
  margin: 0;
  padding: 0;
}

.tree ul {
  padding-top: 20px;
  position: relative;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  transition: all 0.5s;
}

.tree li {
  float: left;
  text-align: center;
  list-style-type: none;
  position: relative;
  padding: 20px 5px 0 5px;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  transition: all 0.5s;
}
/*We will use ::before and ::after to draw the connectors*/

.tree li::before,
.tree li::after {
  content: "";
  position: absolute;
  top: 0;
  right: 50%;
  border-top: 1px solid #ccc;
  width: 50%;
  height: 65px;
  z-index: -1;
}

.tree li::after {
  right: auto;
  left: 50%;
  border-left: 1px solid #ccc;
}
/*We need to remove left-right connectors from elements without 
any siblings*/

.tree li:only-child::after,
.tree li:only-child::before {
  display: none;
}
/*Remove space from the top of single children*/

.tree li:only-child {
  padding-top: 0;
}
/*Remove left connector from first child and 
right connector from last child*/

.tree li:first-child::before,
.tree li:last-child::after {
  border: 0 none;
}
/*Adding back the vertical connector to the last nodes*/

.tree li:last-child::before {
  border-right: 1px solid #ccc;
  border-radius: 0 5px 0 0;
  -webkit-transform: translateX(1px);
  -moz-transform: translateX(1px);
  transform: translateX(1px);
  -webkit-border-radius: 0 5px 0 0;
  -moz-border-radius: 0 5px 0 0;
  border-radius: 0 5px 0 0;
}

.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;
}
/*Time to add downward connectors from parents*/

.tree ul ul::before {
  content: "";
  position: absolute;
  top: -60px;
  left: 50%;
  border-left: 1px solid #ccc;
  width: 0;
  height: 80px;
  z-index: -1;
}

.tree li a {
  border: 1px solid #ccc;
  padding: 5px 10px;
  text-decoration: none;
  color: #666;
  font-family: arial, verdana, tahoma;
  font-size: 11px;
  display: inline-block;
  background: white;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  transition: all 0.5s;
}

.tree li a+a {
  margin-left: 20px;
  position: relative;
}

.tree li a+a::before {
  content: "";
  position: absolute;
  border-top: 1px solid #ccc;
  top: 50%;
  left: -26px;
  width: 25px;
}
/*Time for some hover effects*/
/*We will apply the hover effect the the lineage of the element also*/

.tree li a:hover,
.tree li a:hover~ul li a {
  background: #c8e4f8;
  color: #000;
  border: 1px solid #94a0b4;
}
/*Connector styles on hover*/

.tree li a:hover~ul li::after,
.tree li a:hover~ul li::before,
.tree li a:hover~ul::before,
.tree li a:hover~ul ul::before {
  border-color: #94a0b4;
}

.tree li a {
  height: 60px;
  width: 60px;
}

.tree > ul > li > ul:before {
  top: -40px;
}
.tree ul li.great-grandchild {
    float: none;
}
}
<div class="tree">
  <ul>
    <li>
      <a href="#">Root</a>
      <ul>
        <li>
          <a href="#">Child with name</a>
          <a href="#">Child with name</a>
          <ul>
            <li>
              <a href="#">Grandchild with name</a>
              <a href="#">Grandchild with longer name</a>
              <ul>
                <li class="great-grandchild">
                  <a href="#">Great Grandchild</a>
                </li>
              </ul>
            </li>
            <li>
              <a href="#">Grandchild with name</a>
              <a href="#">Grandchild with much longer name</a>
              <ul>
                <li class="great-grandchild">
                  <a href="#">Great Grandchild</a>
                </li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

有什么想法可能导致此问题/我该如何解决它?


添加缺少的垂直对齐方式。

http://jsfiddle.net/7g7fz2tL/6/ http://jsfiddle.net/7g7fz2tL/6/

.tree li a {
  height: 60px;
  width: 60px;
  vertical-align: top; /*THIS*/
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 家谱与名称长度的对齐问题 的相关文章

  • jQuery 或 Javascript - 如何禁用窗口滚动而不溢出:隐藏;

    您好 是否可以在不使用的情况下禁用窗口滚动overflow hidden 当我悬停一个元素时 我试过 chat content on mouseenter function document scroll function e if e h
  • 从 html 属性中删除单引号和双引号,并且除 href 和 src 之外的所有属性上都没有空格

    我正在尝试从 html 属性中删除单引号和双引号 这些属性是没有空格的单个单词 我写了这个有效的正则表达式 type title data toggle colspan scope role media name rel id class
  • Java Web 技术中的 AJAX 自动完成文本框(JSP 和 servlet)

    我需要您的帮助 了解如何使用 Java Web 技术 JSP Servlet 和 AJAX 使 HTML 输入文本元素像 Google 的 AJAX 搜索引擎 输入文本元素一样工作 下拉列表中的数据将来自数据库表 例如分别是 MySQL 或
  • 通过 jQuery 选择动态 HTML 元素

    我正在构建一个 ASP NET MVC 应用程序 并且正在使用jQuery Blueimp https github com blueimp jQuery File Upload动态添加到页面的 PartialView 上的插件 根据插件的
  • HTML:如何强制链接在新选项卡而不是新窗口中打开[重复]

    这个问题在这里已经有答案了 I use target blank 在新选项卡中打开链接 但在 IE 中它会打开一个新窗口 这是完全合乎逻辑的 因为这就是 blank应该做的 我不知道如何target blank 在其他浏览器中的行为 有什么
  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • Django:使用条件 {% extends %} 使 {% block "div" %} 成为条件

    我想分享一个 AJAX 和常规 HTTP 调用之间的模板 唯一的区别是一个模板需要扩展 base html html 而另一个则不需要 我可以用 extends request is ajax yesno app base ajax htm
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 如何在 Lift 框架中添加新页面

    如何在 lift 中的 webapp 目录中添加一个可供用户访问的新页面 目前只能通过index html访问http localhost 8080 com http localhost 8080 or http localhost 808
  • 为什么我的反应路由器链接将我带到页面中间?

    我的网站上有很多链接 但只有一个可以执行此操作 它没有将我带到导航栏的顶部 而是转到内容的中间 知道为什么会这样吗 这是一个页面 其中有一个 map经历一些JSON 这是渲染div页面下方的文本元素 如果重要的话 这是一些可能相关的代码 路
  • 如何在通过 .ajaxForm() 提交表单之前执行一些操作?

    我正在使用 ajaxForm 框架来发送我的数据 而无需重新加载我的页面 ReplayForm ajaxForm success function data alert Success 现在 我想在提交表单之前检查一些条件 如果条件为假 则
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • JSP/Servlet HTTP 404 错误处理

    我想在我的网络应用程序中处理 HTML 404 错误 我可以这样写
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上
  • 如何使用 CSS 媒体查询检测设备方向?

    在 JavaScript 中 可以使用以下方式检测方向模式 if window innerHeight gt window innerWidth portrait true else portrait false 但是 有没有一种方法可以仅
  • 将特定字形与网络字体一起使用

    使用网络字体 我想使用字体功能设置 CSS 中的选项以及跨度类HTML 中 以便使用字体集中的特定替代字形 我需要以正确的语法使用哪些值 GID Unicode 才能定位特定的目标glyph内glyph备择方案 这些功能使用 OpenTyp
  • CSS 精灵按钮

    这些精灵按钮让我抓狂 我几乎可以让他们工作 但不完全是 我正在玩这个非常简单的精灵图像 我有一个 jsfiddle 项目 gt gt 这里 如果你想看的话 但如果你只想看一下 代码就在下面 http jsfiddle net jp2code
  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是

随机推荐

  • 如何在页面上显示 PHP 和 HTML 源代码?

    如何在用户端显示 PHP 代码 有点像w3School http www w3schools com dtd default asp does 假设有一个灰色区域 div 然后在其中显示代码而不激活它 您可以使用 html 实体 lt ph
  • 延迟加载在 Angular 6 中不起作用

    当我尝试导航到 时遇到此错误 http localhost 4200 仪表板 http localhost 4200 dashboard 角度中的延迟加载路线 角度 cli 6 0 0 错误错误 未捕获 承诺 错误 找不到模块 应用程序 仪
  • 如何在 AVSpeechUtterance 之后持续停止 AVAudioSession

    我想做的是允许我的应用程序使用AVSpeechSynthesizer当后台音频应用程序正在播放音频时 当我的应用程序正在说话时 我希望后台应用程序的音频 变暗 然后在我的应用程序结束说话后返回到原始音量 In my AudioFeedbac
  • 在 Keras 中导入 Attention 包会出现 ModuleNotFoundError: No module named 'attention'

    作为导入的一部分 我导入 AttentionLayer 包 如下所示 from attention import AttentionLayer 我收到以下错误 ModuleNotFoundError No module named atte
  • Windows 上 Ruby 出现 SSL 错误

    赢7x64 每当我尝试安装 gem 时 都会收到 SSL 错误 ERROR While executing gem Gem RemoteFetcher FetchError SSL connect returned 1 errno 0 st
  • 无法安装 npm 包 ||没有权限

    我在安装 PM2 时遇到以下错误 我也尝试在本地安装它 但似乎没有任何效果 请帮忙 命令 npm install pm2 g anil anil Desktop restapis npm install pm2 g npm WARN opt
  • 这是做什么的:git分支-f

    我正在尝试弄清楚如何正确使用此命令 我相信这是我想要将一个分支本质上创建到另一个分支的命令和标志 基本上删除一个分支并创建一个与另一个分支的文件同名的新分支 但我不确定 或者我的语法是否正确 如果我这样做 git branch f mast
  • PCA前后数据维度

    我正在尝试kaggle com 的数字识别器竞赛 http www kaggle com c digit recognizer使用 Python 和 scikit learn 从训练数据中删除标签后 我将 CSV 中的每一行添加到如下列表中
  • 测试 Twilio 的电话号码

    Twilio 是否有任何可用于模拟出站呼叫的 测试 电话号码 例如 我希望能够充分测试我的应用程序 为繁忙的呼叫 应答机 无序 无效号码等返回异步响应 就像我通常期望的那样 您可以使用一些号码来发送 SMS 消息 但这些号码都会返回简单 即
  • Android 活动二进制 XML 文件行:您必须提供layout_width 属性

    我已经读过它了 但它仍然在这里
  • 为什么增强 for 循环的局部变量必须是局部的? [复制]

    这个问题在这里已经有答案了 根据Java 语言规范 第 14 14 2 节 http docs oracle com javase specs jls se7 html jls 14 html jls 14 14 2 增强的变量for循环必
  • android中动画完成时获取对象的位置

    有没有办法在动画结束后找出我的动画 对象 的最终位置 假设我正在使用 TranslateAnimation 和 ScaleAnimation 以及 setFillAfter true 在 1 秒内对父位置为 0 0 20 20 的 Imag
  • 在 Visual Studio Code 中使用多个 Python 内核

    我正在尝试开始使用 Visual Studio Code 和 Don Jayamanne 的 Python Jupyter 扩展 我的系统上同时有 Python 3 5 和 3 6 内核 但我无法使它们对这些扩展都可见 VS Code 中仅
  • 将一些包从基本环境克隆到另一个环境

    我安装了蟒蛇 所以我已经安装了很多软件包 现在我创建了一个新的环境 几乎是空的 并开始向其安装一些特定的软件包 我这台机器上没有互联网 所以我需要将轮子或源文件复制到它 好的 它可以工作 但是当我在基本环境中已经有像 numpy 这样的包时
  • Swift:将不受约束的泛型类型转换为确认可解码的泛型类型

    情况 我有两个通用类 它们将从 api 和数据库获取数据 分别说 APIDataSource 和 DBDataSource 创建视图模型时 我将在视图模型中注入两个类中的任何一个 视图模型将使用该类来获取所需的数据 我希望视图模型与这两个类
  • 给div设置style='height:100%'是什么意思?

    SO上有很多与此相关的问题 但我扫描的都是针对详细的具体情况 我想知道的是 在概念层面上 这意味着什么 div style height 100 100 有多高 100 什么 EDIT 跟进问题 如果100 代表parent的高度 但是pa
  • scikit-learn 分类器的小批量训练,我提供小批量

    我有一个非常大的数据集 无法加载到内存中 我想使用这个数据集作为 scikit learn 分类器的训练集 例如LogisticRegression 是否有可能在我提供小批量的情况下对 scikit learn 分类器进行小批量训练 我相信
  • 如何获取某种类型的所有小部件?

    我有一个绝对面板以及不同的小部件 按钮 图像 标签等 是否可以获取特定类型的所有小部件的集合或数组或其他任何内容 例如图像 干得好 我们可以用iterator Iterator
  • 如何使用xsl打印百分位数

    我正在尝试使用 HTML 报告生成 99 jmeter results detail report 21 xsl文件 我可以使用以下代码打印 90
  • CSS 家谱与名称长度的对齐问题

    我从 CSS3 Family Tree 的实验性多父版本开始 http thecodeplayer com experiment css3 family tree 2 http thecodeplayer com experiment cs