html - 内联 block CSS

标签 html css

我在我的 CSS 代码中遇到了问题......

问题是......

为什么“图标 friend ”和“图标隐私”不想与文本对齐

首页.html

 <link rel="stylesheet" href="//cdn.materialdesignicons.com/1.9.32/css/materialdesignicons.min.css">

 <div class="privacy-select">
  <span class="display-ib">
   <span class="mdi mdi-earth"></span>
   <p>World</p>
  </span>

  <ul class="my-dropdown">
    <li>
      <span class="mdi mdi-account"></span>
      <p>Friend</p>
    </li>
    <li>
      <span class="mdi mdi-lock"></span>
      <p>Privacy</p>
    </li>
  </ul>

 </div>

首页.css

.privacy-select {
  position: relative;
  display: inline-block
}

span {
  display: inline-block;
}

p {
  margin: 0;
  display: inline-block;
}

ul {
  dispaly: inline-block;
  margin: 0;
  padding: 0;
  list-style: none;
}

.my-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 1em;
}

查看我的编码 https://jsfiddle.net/FIERMANDT/7gygxncp/

最佳答案

这是因为您已将 privacy-select div 内联 block 设置为 - 这意味着它的宽度与内部最宽的元素一样宽 - 在本例中为 display-ib span 因为您已将 ul 设置为绝对位置(将其移出流程)

这意味着,由于这对于 ul 元素来说不够宽,因此 ul 元素将换行,除非您告诉它们不要这样做:

.privacy-select {
  position: relative;
  display: inline-block;
}

span {
  vertical-align: middle;
}

p {
  margin: 0;
  display: inline-block;
}

ul{
  margin: 0;
  padding: 0;
  list-style: none;
}

.my-dropdown {
  position:absolute; /* does this need to be absolutely positioned - removing this is another way fix your issue */
  top:100%;
  right: 0;
  margin-top: 1em;
  white-space:nowrap; /* add this, or alternately give this a min-width, or you could make privacy-select a block element  */
}
<link rel="stylesheet" href="//cdn.materialdesignicons.com/1.9.32/css/materialdesignicons.min.css">
<div class="privacy-select">
  <span class="display-ib">
   <span class="mdi mdi-earth"></span>
  <p>World</p>
  </span>

  <ul class="my-dropdown">
    <li>
      <span class="mdi mdi-account"></span>
      <p>Friend</p>
    </li>
    <li>
      <span class="mdi mdi-lock"></span>
      <p>Privacy</p>
    </li>
  </ul>
</div>

关于html - 内联 block CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43803221/

相关文章:

html - 使用 css 缩放图像

html - 如何使用 CSS 将 "crop"矩形图像变成正方形?

javascript - 通过 Knockout 组合文本和 html

javascript - 如何将表格内的表单转换为JSON

javascript - Chrome 的 .resize() 的替代方案?

CSS 背景颜色未一致地应用于已访问的链接。 GM_addStyle 添加的 CSS

html - 显示:table fill out horizontal space without setting width

javascript - 将表单字段重置为初始状态

html - 悬停在每个链接上的宽度变化比悬停的那个

html - 由 div 控制的 anchor 高度