学生就可以看懂的bootstrap基础实战系列,pre标签里是笔记总结,动手实际操作一下会加强理解。有疑问留言交流哦。
bootstrap是进阶html5很基础常用的前端框架,可以做自适应漂亮的界面,再坚持一下,前端知识的大门就会打开了。
在HTML中,有一个很重要的理论:块元素和行内元素。在CSS中极其重要的一个理论——CSS盒子模型。 在“CSS盒子模型”理论中,页面中的所有元素都可以看成一个盒子,并且占据着一定的页面空间。
一个页面由很多盒子组成,这些盒子之间会互相影响,因此掌握盒子模型需要从两个方面来理解:一是理解单独一个盒子的内部结构(往往是padding),二是理解多个盒子之间的相互关系(往往是margin)。
盒模型指的是网页元素的结构。当指定一个元素的宽度或高度时,便设置了元素内容的尺寸,可以把每个元素都看成一个盒子,盒子模型是由4个属性组成,号称“盒尺寸四大家族”:
此外,在盒子模型中,还有宽度(width)和高度(height)两大辅助性属性。记住,所有的元素都可以看成一个盒子 。如下图所示:
内容区是CSS盒子模型的中心,它呈现了盒子的主要信息内容,这些内容可以是文本、图片等多种类型。内容区是盒子模型必备的组成部分,其他3个部分都是可选的。 内容区有3个属性:width、height和overflow。使用width和height属性可以指定盒子内容区的高度和宽度。在这里注意一点,width和height这两个属性是针对内容区content而言的,并不包括padding部分。 当内容过多,超出width和height时,可以使用overflow属性来指定溢出处理方式。
内边距,指的是内容区和边框之间的空间,可以看成是内容区的背景区域。padding属性接受长度值或百分比值,但不允许使用负值。 关于内边距的属性有5种:padding-top、padding-bottom、padding-left、padding-right,以及综合了以上4个方向的简写内边距属性padding。使用这5种属性可以指定内容区与各方向边框之间的距离。
因为CSS中默认的box-sizing是content-box,所以使用padding会增加元素的尺寸。
.box {
width: 80px;
padding: 20px;
}
如果不考虑其他CSS干扰,此时.box元素所占据的宽度就应该是120像素(80px+20px×2),这其实是不符合现实世界的认知的,人们总是习惯把代码世界和现实世界做映射,因此,新人难免会在padding的尺寸问题上踩到点坑。这也导致很多人乐此不疲地设置box-sizing 为border-box,甚至全局设置。
外边距,指的是两个盒子之间的距离,它可能是子元素与父元素之间的距离,也可能是兄弟元素之间的距离。外边距使得元素之间不必紧凑地连接在一起,是CSS布局的一个重要手段。 外边距的属性也有5种:margin-top、margin-bottom、margin-left、margin-right,以及综合了以上4个方向的简写外边距属性margin。 同时,CSS允许给外边距属性指定负数值,当外边距为负值时,整个盒子将向指定负值的相反方向移动,以此产生盒子的重叠效果,这就是传说中的“负margin技术”。
只有元素是“充分利用可用空间”状态的时候,margin才可以改变元素的可视尺寸。比方说,如下CSS:
.header {
width: 160px;
margin: 0 -5px;
}
此时元素宽度还是160像素,尺寸无变化。因为只要宽度设定,margin就无法改变元素尺寸,这和padding是不一样的。
但是,如果是下面这样的HTML和CSS:
<div class="header">
<div class="son">
</div></div>
.header { width: 160px; }
.menu { margin: 0 -5px; }
则.menu元素的宽度就是165像素了,尺寸通过负值设置变大了,因为此时的宽度表现是“充分利用可用空间”。
只要元素具有块状特性,无论有没有设置width/height,无论是水平方向还是垂直方向,即使发生了margin合并,margin对外部尺寸都着着实实发生了影响。
块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单个外边距,这样的现象称为“margin合并”。
margin:auto的填充规则如下。 (1)如果一侧定值,一侧auto,则auto为剩余空间大小。 (2)如果两侧均是auto,则平分剩余空间。
在CSS盒子模型中,边框与我们之前学过的边框是一样的。 边框属性有border-width、border-style、border-color,以及综合了3类属性的简写边框属性border。
border属性总是能解决很多棘手的问题,在在图形构建、体验优化以及网页布局这块几大放异彩,,同时保证其良好的兼容性和稳定性。下面我们一起看看border都有哪些精彩的特性表现。
我们通过比对笔记本、手机发现,虽然两台设备的尺寸差异很大,但是边框的大小相比而言就可以忽略不计了。边框是不会因为设备大就按比例变大的。因此,如果支持百分比值,是不是就意味着设备大了边框也跟着变大?有一张图片,大片区域都是白色的,在白底背景上和文字混在一起,就会有一片奇怪的空白区域,会让人产生没对齐的假象,此时,我们给这张图片套个1px灰色边框,区域就明显了,对吧!设计的初衷就是为了这么点儿事,没有需要使用百分比值的场景。于是,综合这两点,造成了border-width不支持百分比值。
border属性可以轻松实现兼容性非常好的三角图形效果,为什么可以呢?其底层原因受inset/outset 等看上去没有实用价值的border-style属性影响,边框3D效果在互联网早期其实还是挺潮的,那个时候人们喜欢有质感的东西,为了呈现逼真的3D效果,自然在边框转角的地方一定要等分平滑处理,然后不同的方向赋予不同的颜色。然后,这一转角规则也被solid类型的边框给沿用了。因此,我们就不难理解下面的4色边框的表现了:
div {
width: 10px; height: 10px;
border: 10px solid;
border-color: #f30 #00f #396 #0f0;
}
运行一下上面的代码看一下效果吧!
这是提高用户体验的一个小技巧,尤其在移动端,我们的操作工具一般就是我们的手指,但是,我们的手指粗细可以媲美胡萝卜,而屏幕尺寸就那么点儿,如果我们正在走路,则一些精致的图标和按钮很容易就点不中甚至误点。
稳妥的方法是外部再嵌套一层标签,专门控制点击区域大小。如果对代码要求较高,则可以使用padding或者透明border增加元素的点击区域大小。
现实生活中看到的盒子,有正方形、长方形、圆柱形等,依据形状特点,可包裹不同物件。CSS中的盒子虽然没有那么多的形状,但在视觉呈现上不同类型的盒子还是会有很大的不同,有的盒子要占据一行,有的盒子不能定义外边距、宽度和高度,有的盒子宽度和高度能自适应。CSS中用display指定盒类型(即框类型),常用的有 block(块)、inline(行内)、inline-block(行内块)、table(表格),以及CSS3新增的flexbox(伸缩盒)。 HTML 元素只有两种默认的盒类型,即块级元素(block-level element)和行内元素(inline-level element)。其中行内元素不可定义CSS属性width、height、上下margin和上下padding。常用的span和div分别是行内元素和块级元素。
由此可见,需要掌握的内容太多,要想学会所有布局相关的技术不太现实。高级的布局话题基于文档流和盒模型等概念,这些是决定网页元素的大小和位置的基本规则。因此理解和掌握如何设置元素的大小和位置至关重要。
为初学者提供学习指南,为从业者提供参考价值。我坚信码农也具有产生洞见的能力。关注【码农洞见】,一起学习和交流吧!
argin属性
margin属性用于设置页面中元素和元素之间的距离,即定义元素周围的空间范围,是页面排版中一个比较重要的概念。margin属性的语法格式如下:
margin:auto | length
其中,auto表示根据内容自动调整,length表示浮点数字和单位标识符组成的长度值或百分数,百分数是基于父对象的高度。对于内联元素来说,左右外延边距可以是负数值。
margin属性包含4个子属性,分别用于控制元素四边,包括margin-top、margin-left、margin-right、margin-bottom。
提示:
在为margin属性设置值时,如果提供4个参数值,将按顺时针顺序作用于上、右、下、左4个边;如果值提供一个参数值,将作用于4边;如果2个参数值作用于,第一个作用于上下,第二个作用于左右;3个参数值时作用于,第一个值作用于上,第二个作用于左右,第三个值作用于下。
border属性
border属性是内边距和外边距的分界线,可以分离不同的HTML元素,border的外边距是元素的最外围,在网页设计中,如果计算元素的款和高,则需要把border属性计算在内。border属性的语法格式如下:
border:border-style | border-color | border-width;
border边框样式值表
提示
border属性不仅可以用于设置图像的边框,还可以为其他元素设置边框,如文字和Div等。
padding属性
在CSS中,可以通过设置padding属性定位内容于边框之间的距离,即内边距。
padding属性的语法格式如下:
padding:length
padding属性可以是具体的长度,也可以是相对于上级元素的百分比,但不可以使用负值。
padding属性包含4个子属性,分别用于控制元素四边,包括padding-top、padding-left、padding-right、padding-bottom。分别可以为盒子定义上、右、下、左和个边值。
Content属性
在盒子模型中,中间部分content(内部)主要显示内容,这部分野是整个盒模型的主要部分,其他的如对margin、border、padding所做的操作都对content部分所做的修饰,对于内容部分的操作,也就是对文字,图像等页面元素的操作。
*请认真填写需求信息,我们会在24小时内与您取得联系。