一直以来我们都很熟悉IE的“浮动边距加倍”的bug,并且绝大多数重构人员都已经很擅长在需要浮动时就直接绕过他。...这个BFC元素没有指定宽度值(或者指定width:auto) 当满足触发条件时,该BFC元素的另一侧的边距将不再受css控制(在webkit核心浏览器下),而是由你所指定的与浮动元素相同的边距决定,即使你在...css中明确指定另一侧的边距为0或任意值也没用。...具体来说,可以分为两种情况: 当BFC与浮动方向相同的边距小于或等于浮动元素占据的总宽度(width+margin+padding+border)时,BFC另一侧的边距等于所设定方向上的边距(下图前两种情况...); 当BFC与浮动方向相同的边距大于浮动元素占据的总宽度时,BFC另一侧的边距等于浮动元素占据的总宽度(下图第三种情况)。
所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。...四边样式 四边颜色; 表格的细线边框 以前学过的html表格边框很粗,这里只需要CSS一句话就可以美观起来。...盒子必须指定了宽度(width) 然后就给左右的外边距都设置为auto,就可使块级元素水平居中。...为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距: * { padding:0; /* 清除内边距 */ margin:0; ...2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。 3、如果一个盒子没有给定宽度/高度或者继承父亲的宽度/高度,则padding 不会影响本盒子大小。
1,去掉移动端苹果手机点击时阴影 div { -webkit-tap-highlight-color:rgba(0,0,0,0); } 2,输入去掉边框,单击阴影,下划线 输入{ 边界:0; 大纲:无...中央 { 保证金:自动; 位置:绝对; 最高:0; 底部:0 左:0; 正确:0; } //绝对定位已知高度 。...中央 { 位置:绝对; 最高:50%; 左:50%; 边距:-50px 0 0 -50px; //假设宽高都为100px } //弹性布局 。...moz-placeholder {} / * Firefox版本4-18 * / ::-moz-placeholder {} / * Firefox版本19+ * / :-ms-input-placeholder...{} / * IE浏览器* / //冒号前写input或textarea等元素 // IE9和Opera12以下版本的CSS选择器均不支持占位文本 8,去掉图片底部至少边距 img { 边界:0; 垂直对齐
属性 作用 margin-left 左外边距 margin-right 右外边距 margin-top 上外边距 margin-bottom 下外边距 5.4.1、块级盒子水平居中 可以让一个块级盒子实现水平居中必须...为了更灵活方便地控制网页中的元素,制作网页时,我们需要将元素的默认内外边距清除 * { padding:0; /* 清除内边距 */ margin:0; /...* 清除外边距 */ } 5.4.5、外边距合并 使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。...5.4.5.1、相邻块元素垂直外边距的合并 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom...5.4.5.2、 嵌套块元素垂直外边距的合并 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者。 ?
一、应用场景 文字环绕:通过将图片等元素设置为浮动,可以实现文字围绕该元素排列的效果,增强页面的排版美感和可读性。例如,在一篇文章中,将图片左浮动,文字就会自动环绕在图片周围。...二、float 属性值 left:左浮动,元素靠上靠左排列。当一个元素设置为左浮动时,它会尽可能地向左移动,直到碰到包含块的边界或者其他浮动元素。 right:右浮动,元素靠上靠右排列。...三、浮动元素的特性 (一)块盒特性 当一个元素浮动后,它必定变为块盒,就像设置了display: block;一样。这意味着它可以设置宽度、高度、边距等块级元素的属性。...即浮动元素的高度会根据其内部的内容自动调整。 margin为auto时,为 0。这意味着如果不明确设置边距,浮动元素的边距会自动设置为 0。 边框、内边距和百分比设置与常规流一致。...这种方法的优点是简单易用,不需要在 HTML 结构中添加额外的元素。同时,它也可以避免一些使用其他方法可能出现的问题,如清除浮动元素的边距问题等。
会左移到:盒子的外边距的左最外沿(如果没有外边距,就是边框的左边沿) 接触到 包含该盒子的父元素的边沿 或者 另一个浮动元素的边沿。...non-positioned non-floated的块元素 默认 浮动元素不占据空间,因为浮动元素 相对于其它块元素 是脱离文档流的。 浮动元素的外边距 不会和相邻元素的外边距 合并。...之所以会这样是由于:浮起来的元素 相对于其它块元素 脱离了文档流,所以所有的块元素在被渲染时,是假设浮动元素不在它原本的位置上的。这不是CSS的bug;这是和CSS说明一致的。...应该指出的是:在这个例子中,对父容器添加一个宽度 会阻止 IE浏览器发生父元素坍塌;所以这是在Firefox,Opera,Safari,Chrome中你不得不解决的问题。...更改margin和padding不会更改显示结果。最简单的方式是:使input field左浮动,并添加一个微小的右外边距。
安装两列布局的传统做法,我们可以想到两列都浮动、左栏浮动+右栏左边距以及负边距等很多方案。...但是再对比一下需求,右栏的特性否决了两栏都浮动的方式,左栏的宽度不固定否定了负边距的方式。...左栏浮动加右栏左边距将会遭遇[cref bfc-element-margin-bug-in-webkit webkit核心浏览器的BFC元素边距bug]。...,在其它浏览器中模拟IE的zoom创建块级上下文。...回到我们的结构中来说: * img-txt要清除浮动(否则当右栏高度小于左栏时,img-txt的高度撑不开),关于清除浮动的方式,之前已经给出了[cref clearfix-reloaded-overflowhidden-demystified-translation
三.注意点: 虽然有很多的选择,不过在小程序中还是尽量用rpx吧,省的适配。...外边距(margin)和内边距(padding) 说到边距,那这个基本上跟Android里的概念差不多,先来看一个图吧,(虽然标注的丑了点,不过那不是重点) ?...一.margin:外边距;设置对象四边的外延边距。 margin: 20rpx 10rpx 25rpx 10rpx :如果提供全部四个参数值,将按上、右、下、左的顺序作用于四边。...某些相邻的margin会发生合并,称之为margin折叠,具体的现象就如果两个块级元素都设置了margin,那取两者之间的最大值做为两个元素的外边距。...二.padding:内边距:设置对象四边的内部边距。
不过应用于表时除外,对于表,hidden 用于解决边框冲突。 dotted 定义点状边框。在大多数浏览器中呈现为实线。 dashed 定义虚线。在大多数浏览器中呈现为实线。...border-color 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。 border-bottom 简写属性,用于把下边框的所有属性设置到一个声明中。...当一个元素包含另一个元素中时,它们的上/下外边距会发生合并: ? ?...属性 描述 position 把元素放置到一个静态的、相对的、绝对的、或固定的位置中。 top 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。...left 定义了定位元素左外边距边界与其包含块左边界之间的偏移。 overflow 设置当元素的内容溢出其区域时发生的事情。 clip 设置元素的形状。元素被剪入这个形状之中,然后显示出来。
若干浮动会相邻,而这个模型也适用于同一行中的相邻的浮动元素。 看下例,下面的规则会使所有的 class="icon" 的 img 盒浮动到左侧(并设置左外边距为 0 )。...左浮动盒的右外边缘不可在其旁边的右浮动盒的左外边缘之右。右浮动元素亦是。 浮动盒的上外边缘不可高于其包含块的顶部。当浮动出现两个折叠外边距之间时,浮动会如同它有一个参与标准流的空匿名父块一样来定位。...该父块的位置由关于外边距折叠那章的规则定义。 浮动盒的上外边缘不可高于源文档中此前元素生成的块盒或浮动盒的上外边缘。 元素的浮动盒的上外边缘不可高于源文档中此前元素生成的盒所在的行盒的顶部。...各值被应用于非浮动块级盒时,具有如下意义: left:要求盒的top border edge低于源文档内此前元素生成的左浮动盒的bottom outer edge。... 说明:要是没有 clear ,首段和末段两个段落的边距将会折叠并且末段的上边框边缘将同浮动段落的顶部齐平。如下: ? 但 clear 使得上边框边缘低于浮动,即下降2em。
在这种方式里,块级元素在它们的包含块里一个一个垂直延伸,行内元素在它们的包含块里从左至右的水平排布。 值得注意的是,在正常流里垂直边距(vertical margin)是重叠的。...也就是说,上下两个块级盒之间的边距由它们之中边距较大的元素决定,而不是他们的和!...在一个BFC中,两个相邻的块级盒子的垂直外边距会产生折叠。即是在BFC中相邻的块级元素的垂直边距会折叠(collapse)。...名词解释: 边距折叠:在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。...折叠的结果: 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。 两个外边距一正一负时,折叠结果是两者的相加的和。
BFC(块级格式化上下文) BFC是个独立的渲染区域,只有块级盒子参与,它规定了内部的盒子如何布局,但不会影响外部盒子 简单的说 它就是一块封闭的区域,里面的盒子在怎么动也不会影响外面的布局。...有外边距margin,有内边距外边框 BFC的特性 1.在BFC中,盒子从顶端开始垂直地一个接一个地排列 2.盒子垂直方向的距离由margin决定,在同一个BFC区域的两个相邻盒子的margin会发生重叠...浏览器显示结果并不是这样,他们之间的边距实际上只有100像素,这就是典型的边距重叠,如何解决这种问题?...第一,尽量避免这种情况,像这种情况直接把边距给一个盒子即可 第二,既然这种问题是有BFC引起的,通过BFC的特性我们知道,在同一BFC区域的连个相邻盒子会发生边距重叠,那我们不让这两个盒子在同一个BFC...3.在BFC中每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到最右边缘) 意思就是子盒子设置边距是从父元素的border开始的
, 这里将 logo 盒子 与 导航栏之间的距离设置成 60 像素即可 ; 该边距可以设置为 logo 盒子的 右外边距为 60 像素 , 也可以设置为 导航栏盒子 的 做外边距为 60 像素 ; 这里设置为...盒子放在一行中 ; /* 导航栏设置 左浮动 */ .nav { float: left; } 导航栏中的无序列表 , 需要设置左浮动 , 才能将 块级元素 从左右到进行排列 ; /* 导航栏内部...的 无序列表 设置左浮动 */ .nav ul li { /* 设置 无序列表项 从左到右排列 */ float: left; } 无序列表中 , 链接标签的样式 , 设置如下样式 ; /* 设置无序列表中的链接样式...*/ text-decoration: none; /* 调试时使用的背景 */ background: skyblue; } 鼠标经过导航链接时 , 还要设置一个下边框 : /* 鼠标经过链接时的样式...从左到右排列 */ float: left; } /* 设置无序列表中的链接样式 */ .nav ul li a { /* 显示模式 块级元素 */ display: block; /* 高度
如下图,scrollWidth = 左内边距 + 内容宽度 + 右内边距 综上,IE 6的scrollWidth = 左内边距 + 内容宽度 + 右内边距,这个内容宽度不等于元素的宽度。...如下图,scrollWidth = 左内边距 + 内容宽度 + 右内边距 综上,IE 7的scrollWidth = 左内边距 + 内容宽度 + 右内边距,这个内容宽度不等于元素的宽度。...如下图,scrollWidth = 左内边距 + 内容宽度 综上,IE 8的scrollWidth = 左内边距 + 内容宽度。...再来看看firefox是如何表现的。 4、Firefox (1)没有滚动条,没有内容。如下图,scrollWidth = 左内边距 + 内容宽度 + 右内边距 (2)有滚动条,有内容。...如下图,scrollWidth = 左内边距 + 内容宽度 综上,Firefox的scrollWidth = 左内边距 + 内容宽度。
,设置左右上下的内边距: 由于我们的标题分为左右两个部分,在此直接在这个标题行内部创建两个行,一个命名为左,一个命名为右: 左右两个行,由于本身自带高度,都设置高度为包裹,并且设置宽度为...点击需要添加下拉菜单的容器,然后点击扩展组件,点击下拉菜单即可添加: 在下拉菜单的属性中,,更改当前选中值,设置选项列表中的内容,更改大小即可完成: 接着在右侧的行中更改水平对齐属性选择靠右...,此时添加的元素才有靠右显示: 接着添加一个正在热映文本,该文本需要设置其排版,上下左右内边距,否则无法设置其边距框: 接着在这个文本中的边框与圆角处设置下边距的颜色为主题色(紫红色...接着由于我们的内容需要与上下左右边缘有一定距离,那么此时直接设置内容行的内边距即可统一的为其元素自带边距效果,此时设置这个内容行的边距如下: 接着再内容行中创建一个行,命名为热映内容,这个热映内容也就是包裹单独一个影片信息的行...: 此时将刚刚所编写的所有内容赋值到导航页1中: 重命名导航页1为首页: 接着点击首页导航栏,在属性中更改选中的图标以及文本: 接着预览: 最后把其它导航页的名称和图片进行修改即可
刷新 Firefox 和 IE 浏览器(按 F5)查看所做的改动。...详细解释: margin: 0 auto 0 auto; 意思是(注意顺序):0上页边空白,自动右页面空白,0下页边空白和自动左页面空白。从现在开始,记得设置左右页边空白为自动将使得居中对齐。...(随便说一下,在 Firefox 和 IE 中文本大小是不同的,我们稍后解决。)...第8步(额外的步骤):修正 IE 的双倍页边距 bug Internet Explorer 有个双倍页边距的 bug,这样在 IE 下,我们的页面距就是 20像素,20像素的页边距可能会破坏布局并把侧边栏挤到页面的底部...,因为一个20像素的页边距使得 Container 和 Sidebar 的宽度之和为 760px 而不是 750px。
简单来说,CSS 盒模型是一个包含多个组件的容器,包括边框、边距、内边距和内容本身。 总之,它是一个用于自定义不同元素布局的 CSS 工具包。...此外,添加边距、内边距和边框不会减小内容区域的总大小。 box-sizing 还有另一个值,称为border-box。 设置时会减小内容区域的大小。...或者换句话说,当向元素添加边距、内边距和边框时,元素的总高度和总宽度不会增加。 CSS盒子模型的组成部分: 1、内容: 这是 CSS 盒子模型的主要元素。...4、边距: 边距是元素边界之外的空间。它在相邻元素之间创建了一个空间。...其中最好的是: CSS 网格布局 Firefox 开发工具 Firefox 拥有惊人的 CSS 开发者工具。其中之一是网格容器。当我们检查一个网格项时,它会可视化整个网格容器的布局。
/ color: #666666; } /* 用户栏 头像样式 */ .user .user-img { float: left; /* 用户头像 30 像素 容器高 42 上下各 6 像素边距...从左到右排列 */ float: left; } /* 设置无序列表中的链接样式 */ .nav ul li a { /* 显示模式 块级元素 */ display: block; /* 高度...: 18px; /* 字体颜色 */ color: #050505; /* 取消链接下方的横线 */ text-decoration: none; /* 调试时使用的背景 */ /*background...: skyblue;*/ } /* 鼠标经过链接时的样式 */ .nav ul li a:hover { /* 鼠标经过导航栏链接 , 底部显示 2 像素的 #00a4ff 颜色实线 */ border-bottom.../ color: #666666; } /* 用户栏 头像样式 */ .user .user-img { float: left; /* 用户头像 30 像素 容器高 42 上下各 6 像素边距
1.盒子模型盒子模型组成:> 盒子模型组成的主要有 边框border,外边距margin ,内边距padding,内容content;- 边框border:> border可以设置元素的边距,边距有三部分...,即盒子与盒子之间的距离> 语法 margin: top right bottom left 上右下左> 外边距可以让设置了width的块级元素水平居中: > {margin: 0 auto} > 行内元素或行内快级元素水平居中...,给父元素添加属性text-align: center --- > 嵌套关系的块级元素垂直外边距的塌陷问题;在父元素和子元素同时具有margin-top属性时,以最大值为准; 解决方式有:给父元素 >...:float属性用于创建浮动层,将其移动到一边,直到左边缘或右边缘触及到包含块或另一个浮动框的边缘;浮动特性浮动元素会脱离标准流- 浮动的盒子不再保留原来的位置- 脱离了标准流的控制浮动元素会一行内显示...,hidden 或scroll- 父元素添加:after伪类; 不需要添加额外标签,- 给父元素添加 双伪元素;before和after; 原理是在父盒子中的第一个元素和最后一个元素添加一个块级元素;图片
不同的书写模式(writing mode)中,可以抽取出共性的抽象概念(如开始位置,或行),这些逻辑抽象概念需要在不同书写模式下映射到左或右、上或下等物理的概念上。...writing-mode: sideways-lr;(仅Firefox41+实现) writing-mode:sideways-lr内容从上到下垂直流动,所有字形,甚至是垂直脚本中的字形,都设置在左侧。...我们原来的 CSS逻辑属性是按照物理逻辑,从上(top)、右(right)、下(bottom)、左(left)划分的。 那么按着这个规则去修改文本属性时,就会出现上述这种不符合语法规则的状态。...中实现过,但是在Firefox 50中被删除。...在块盒子内部,行盒子总是从块盒子的一边延伸到另一边(译注:即占据整个块盒子的宽度)。当有浮动元素时,行盒子会从向左浮动的元素的右边缘延伸到向右浮动的元素的左边缘。
领取专属 10元无门槛券
手把手带您无忧上云