首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含文本的等距浮动<div>元素打破了布局

包含文本的等距浮动<div>元素打破了布局
EN

Stack Overflow用户
提问于 2019-04-02 22:29:08
回答 2查看 38关注 0票数 1

下面的code是从Chris Coyier关于等距内嵌块元素的文章中修改而来的。

它用于使内嵌块元素等距(不需要flex或网格布局)。

代码运行得很好。

HTML:

等距divs Inline-block方法

代码语言:javascript
复制
<div class="cardbox">
  <div class="card">
  </div>

  <div class="card">
  </div>

  <div class="card">
  </div>
</div>

CSS:

代码语言:javascript
复制
 .cardbox
  {
    height: 125px;
    text-align: justify;
    border: 10px solid black;
    /* font-size: 0.1px;     IE 9 & 10 don't like font-size: 0; */
    min-width: 600px;
    /*background-color: peachpuff;*/
  }

  .cardbox::after
  {
    display: inline-block;
    content: '';
    width: 100%; 
  }

  .card
  {
    width: 150px;
    height: 125px;
    display: inline-block;
    border: 1px solid navy;
    background: lightblue;
  }

但是,here,我已经修改了超文本标记语言,以便在。(第一个包括数字“1”。)布局立即中断:

HTML:

代码语言:javascript
复制
<div id="container">
  <div>1</div>
  <div></div>
  <div></div>
</div>

这项技术可以用来使包含文本的内联块元素等距吗?

如果不是,如何使这些元素等距?(我的主要兴趣是使文本卡等距。)

在本练习中,我不想使用flex或网格布局,因为此代码片段将是逐步增强的网页的一部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-02 22:33:18

只需在card CSS中添加vertical-align: top即可。我只是更新你的代码,希望能帮到你。谢谢

代码语言:javascript
复制
.cardbox
  {
    height: 125px;
    text-align: justify;
    border: 10px solid black;
    min-width: 600px;
  }

  .cardbox::after {
    display: inline-block;
    content: '';
    width: 100%; 
  }

  .card {
    width: 150px;
    height: 125px;
    display: inline-block;
    border: 1px solid navy;
    background: lightblue;
    vertical-align: top;
  }
代码语言:javascript
复制
<div class="cardbox">
  <div class="card">1</div>
  <div class="card"></div>
  <div class="card"></div>
</div>

票数 2
EN

Stack Overflow用户

发布于 2019-04-02 22:40:31

通过在您的主div中插入辅助div。我们可以通过使用divposition属性找到解决方法。

我希望给第二个div一个absolute位置,这样它就不会影响布局了。

此技术用于避免使用flex或grid,正如问题中所指定的那样。

代码语言:javascript
复制
.cardbox {
  height: 125px;
  text-align: justify;
  border: 10px solid black;
  min-width: 600px;
}

.cardbox::after {
  display: inline-block;
  content: '';
  width: 100%;
}

.card {
  width: 150px;
  height: 125px;
  display: inline-block;
  border: 1px solid navy;
  background: lightblue;
  position: relative;
}

.card--content {
  position: absolute;
  background: tomato;
}
代码语言:javascript
复制
<div class="cardbox">
  <div class="card">
    <div class="card--content">
      1
    </div>
  </div>

  <div class="card">
    <div class="card--content">
    1234
    </div>
  </div>

  <div class="card">
    <div class="card--content">
    </div>
  </div>
</div>

这将是我推荐的解决方案。

代码语言:javascript
复制
.cardbox {
  height: 125px;
  text-align: justify;
  border: 10px solid black;
  min-width: 600px;
}

.cardbox::after {
  display: inline-block;
  content: '';
  width: 100%;
}

.card {
  width: 150px;
  height: 125px;
  display: inline-block;
  border: 1px solid navy;
  background: lightblue;
  position: relative;
}

.card--content {
  position: absolute;
  background: tomato;
  height: 100%;
  width: 100%;
}
代码语言:javascript
复制
<div class="cardbox">
  <div class="card">
    <div class="card--content">
      1
    </div>
  </div>

  <div class="card">
    <div class="card--content">
    1234
    </div>
  </div>

  <div class="card">
    <div class="card--content">
    </div>
  </div>
</div>

希望这能有所帮助!

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

https://stackoverflow.com/questions/55477261

复制
相关文章

相似问题

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