- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在《CSS权威指南》中,作者说“这七个属性的值必须加起来等于元素包含 block 的宽度,这通常是 block 元素父元素的宽度值”。但是在下面,子元素比父元素宽。
//html
<div class="wrapper">
<div class="content-main">
<div class="main">This is main</div>
</div>
</div>
//风格
.wrapper {
width: 500px;
padding: 30px 0;
border: 1px solid #0066cc;
}
.content-main {
padding: 0 20px;
border: 2px solid #00CC33;
}
.main {
width: 500px;
border: 1px solid #f00;
}
所以我有两个问题:
作者所说的“七个属性必须加起来等于元素包含 block 的宽度”是什么意思。
为什么在我的示例中,元素会突出父元素。
在编辑版本中,七个属性加起来元素的宽度“包含 block ”似乎效果很好。为什么等式不适用于我的示例?
编辑版本
p.wide宽度为438px,笔者计算如下
10px(左边距) + 1(左边框) + 0 + 438px + 0 + 1(右边框) – 50px(右边距) = 400px(父宽度)
//HTML
<div>
<p class="wide">A paragraph</p>
<p>Another paragraph</p>
</div>
//CSS
div {width: 400px; border: 3px solid black;}
p.wide {
margin-left: 10px; width: auto; margin-right: -50px;
border: 1px solid #f00;
}
最佳答案
作者所说的“七个属性必须加起来等于元素包含 block 的宽度”是什么意思。
他在教你CSS Box Model ,在这里,您使用的 div
元素本质上是 block 级, block 级 意味着它们占用整个默认水平空间,不像 span
或 i
或 b
标签,它们是 inline 元素。
因此,当您使用 padding
或 border
时,它们会添加到元素外部而不是内部。例如,你有一个尺寸为 100x100 的元素,你添加了一个 padding
element {
width: 100px;
height: 100px;
padding: 10px;
}
所以在上面的例子中,你的元素总共将是 120x120,因为它将在你的元素的所有四种尺寸上添加 10px
的 padding
。
你有两种不同的padding
语法,它们如下...
padding: 30px 0;
在 .wrapper
和 padding: 0 20px;
在 .content-main
所以它们不一样。
以上两种语法不过是padding
的简写语法...完整版看起来像...
padding: 5px 10px 15px 20px; /*Nothing to do with your code, this is just a demo */
所以在上面的例子中,你必须顺时针,所以 5px
只不过是 padding-top: 5px;
,然后是 10px
是 right
,下一个是 bottom
,最后一个 20px
是 padding-left
。
那么当它只定义了两个参数时,这意味着......
padding: 0 20px;
--^---^---
top bottom/left right
因此,top
和 bottom
在这里设置为 0
,right
和 left
code> 到 20px
分别...
Note: None of the element has the
height
set by you, so the screens you see ahead which I've attached are computed. So ignore height in them completely.
.wrapper {
width: 500px;
padding: 30px 0;
border: 1px solid #0066cc;
}
在这里,您的元素是 502px
wide,为什么?正如我所说,border
将在元素的所有四个边上添加,因此它会在所有四个边上添加 1px
但您的 padding
是仅适用于 top
和 bottom
。最好使用像 Firebug 这样的工具,它会以图形方式显示幕后发生的事情。
来到具有以下语法的第二个片段
.content-main {
padding: 0 20px;
border: 2px solid #00CC33;
}
在这里,它现在向您的元素添加 2px
border
但是,padding
现在应用于 left
和 right
而 top
和 bottom
没有任何内容,所以现在计算将是
来到最后一个片段是
.main {
width: 500px;
border: 1px solid #f00;
}
这里只是应用了border
,但是为什么会熄灭呢?用技术的话来说,为什么会溢出?因为您定义了 width
。因此,由于您为父元素设置了 padding
,即 padding: 0 20px;
,因此它会将子元素从 20px
微调左侧。我将附上 Firebug 的屏幕,向您展示为什么它会被轻推....
为什么在我的示例中,元素会突出父元素。
因为您将 500px
的 width
定义到您的 .main
div
Demo (当你取出width
时会发生什么)
默认框模型称为content-box
这可以通过定义一个名为 box-sizing
的新 CSS3 引入属性来改变。设置为 border-box
这将改变您的 box-model
以计算 padding
和 border
在元素内而不是在外
关于html - block 级元素的水平格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433566/
有没有办法使用 Clojure format(基于 java.util.Formatter)或 cl-format(基于 Common Lisp 的format) 以编程方式设置空格填充?如果您事先知
我正在尝试创建一个用户实体以及数据/文件(pdf格式)。上传并保存到数据库很好,但是当我让用户进入 postman 时尝试发送获取请求方法,然后在数据字段中显示一些糟糕的数据,而且我无法在数据库中看到
我必须将值为 {"STX","ETX"} 的普通字符串数组转换为十六进制值,并且我应该根据 http://www.asciitable.com/ 得到 {2,3} . 最佳答案 听起来你想要一个 Ma
我想格式化我的代码,但不确定哪种格式类型最适合我的项目需要。 我发现仅对于 dart 和 flutter 项目(我都有),有不止一个选项可用于格式化编程语言/框架中预先构建的代码。 Dart : da
我已经尝试了多个代码,例如这样 Sub DateFixer() Application.ScreenUpdating = False Application.Calculation =
SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.add("wt","csv"); server.query(query)
我有一个包含多个字符串的数据库,我从查询中获取了这些记录,并且我在 QString 中收到了这种格式的数据: "Mon, 13 Nov 2017 09:48:45 +0000" 所以,我需要根据文化来
我有一个 Delphi 2007 DBGrid,我想让用户以更新的 Excel 格式 (OOXML) 保存它,但我的标准是用户不需要安装 Excel。有没有人知道任何已经这样做的组件?是的,我已经搜索
我正在我们的普通 html 站点旁边创建一个移动站点。使用 rails 3.1。移动站点在子域 m.site.com 中访问。 我已经定义了移动格式(Mime::Type.register_alias
我正在尝试使用 xmlstarlet 格式化 xml 文件,但我不想创建新的 xml 文件。 我试过了 xmlstarlet fo --inplace --indent-tab --omit-decl
我在 A 列中有一个带有文本的电子表格。 例如 A1=MY TEXT1 A2=MY TEXT2 A3=MY TEXT3 A4=MY TEXT4 A5=MY TEXT5 我想在文本的前后添加撇号 结果是
我想做一些源代码转换(自动导入列表清理),我想保留注释和格式。我听说过一些关于解析器这样做的事情,我认为是 ghc 解析器。 看起来我可以通过从文件中提取内容来使用 hs-src-exts Langu
我在 Excel 中工作,我想根据另一张表中的列表找出一张表中是否有匹配项。 我已将值粘贴到列表中,并希望从另一张表中返回它们的相应值。包含字母和数字的单元格可以正常工作(例如:D5765000),但
我有一个 DurationField在我的模型中定义为 day0 = models.DurationField('Duration for Monday', default=datetime.time
我正在为我的应用程序开发 WMI 查询。它需要为给定的 VID/PID 找到分配的虚拟 COM 端口。使用 WMI Code Creator 我发现...... 命名空间:root\CIMV2 类:W
我试图弄清楚如何使用 NSTextList,但除了 this SO question 之外,在网上几乎没有找到有用的信息。和 the comment in this blog . 使用这个我已经能够创
我要查询all_objects表在哪里last_ddl_time='01 jan 2010'但它拒绝日期格式... 任何机构给我查询的确切格式? 最佳答案 正如 AKF 所说,您应该使用 Trunc除
我试图在我的应用程序中实现聊天功能。我使用了 2 个 JEditorPane。一个用于保存聊天记录,另一个用于将聊天发送到前一个 JEditorPane。 JEditorPane 是 text/h
我在大学里修了一个编译器类(class),内容非常丰富,很有趣,尽管也很多工作。既然给了我们要实现的语言规范,所以我学不到的一件事就是语言设计。我现在正在考虑创建一种有趣的简单玩具语言,以便我可以玩耍
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我是一名优秀的程序员,十分优秀!