html - 如何使用 % 定义的宽度但 px 定义的填充将两个 div 彼此相邻 float

标签 html css

我试图将图像 float 到文本 block 的左侧并在两者之间保持微小的间隙,但我不希望文本在图像下方蜿蜒。这就是我想要的:

------- ------------
| pic | |   text   |
------- |          |
        |          |
        |          |
        ------------

如果所有元素的宽度和大小都是 px 定义的,这会很容易,但它们是 % 定义的:

<div id="container">
  <div class="theimage"><img src=img.jpg"></div>
  <div class="thetext">blah blah</div>
</div>

#container {width: 95%; overflow: auto}
.theimage {float: left; width: 20%}
.theimage img {width: 100%}
.thetext {float: left; width: 80%}

上面的这个工作正常。但是,如果我随后将 padding-right: 10px 添加到 theimage 以在图像和文本之间创建一个间隙,thetext 将落在 theimage 而不是漂浮在它旁边。

对于在 theimagethetext 之间建立差距有什么帮助吗?

最佳答案

尝试使用属性 box-sizing: border-box。在正常的 content-box 模型下,元素的填充不包括在高度计算中,因此您将 10px 添加到图像的 20%,因此图像和文本的总和将为 20% + 10px + 100%,这当然超过了父宽度。

事实上,Paul Irish recommends using CSS 规则,* { box-sizing: border-box; },因为它会让你免去计算维度的麻烦,而且对浏览器性能和页面呈现的影响微乎其微。

关于html - 如何使用 % 定义的宽度但 px 定义的填充将两个 div 彼此相邻 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15451194/

相关文章:

javascript - JavaScript 和 CSS 的集成

jquery - WordPress 将 wp_nav_menu 自定义为 Bootstrap 可折叠树菜单

html - css:使内部容器高度为 100%,并带有顶部和底部边距

javascript - 单选按钮没有按应有的方式显示

java - html 中的变量属性名称 :text tag

javascript - 函数点击jquery申请多个元素?

html - div 中第一个 p 的位置高于同一 div 中的另一个 p

javascript - 警报框不打印变量值

javascript - 无法使用 javascript 设置 HTML 对象元素的数据属性

css - 如何使用 Bootstrap 并排放置两个选择?