2018-09-19 Day23 CSS布局

一、标准流

标准流:浏览器对标签默认的布局方式就是标准流。
标准流布局原则:

  • 块级标签:
    a、块级标签一个占一行(不管标签的宽度是否是浏览器宽度)
    b、默认宽度是父标签的宽度,默认高度是内容的高度。
    c、直接设置宽高有效

  • 行内标签:
    a、多个行内标签可以一行显示。
    b、默认宽高是内容的宽高。
    c、直接设置宽高无效。

  • 行内块标签:
    a、多个行内块标签可以在一行显示。
    b、默认宽高是内容的宽高。
    c、直接设置宽高有效。

display属性:转换标签的性质
block:块级
inline:行内
inline-block:行内块

注意:行内块和其他标签之间默认会有个间隙,而且无法消除,所以一般不建议使用。

二、浮动 -- float

通过给float属性赋值为 left 或者 right 来让标签浮动。浮动会让标签脱流,脱流后原来的标准流布局方式不适用了。
float:left; 按照浏览器的左上角为起点。
float:right按照浏览器的右上角为起点。

浮动的目的:让竖着显示的可以横着来(针对块)

浮动的效果:
一行可以显示多个;默认的宽高是内容的大小;可以设置宽度和高度

注意事项:
a、如果同一级的标签,后面的需要浮动,前面的也需要浮动,否则可能会出现一些显示问题。
b、浮动的标签不占位置,不浮动的占位置。

利用浮动产生文字环绕效果
结论:被环绕的标签浮动,文字对应的标签不浮动。

清除浮动:不是将标签的浮动给去掉,而是清除因为浮动而产生的高度塌陷的问题。

高度塌陷:在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。
但是当为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。
由于父元素的高度塌陷了,则父元素下的所有元素都会向上移动,这样将会导致页面布局混乱。

高度塌陷产生原因:父标签不浮动,子标签浮动,并且不设置父标签的高度,就会产生高度塌陷问题。

解决方案:
1、在后面添加一个div空盒子,设置样式为clear:both

<div id="" style="clear: both;">
</div>

2、给父标签添加样式,设置overflow的值为hidden。

3、万能清除法

            #father:after{
                display: block;
                clear: both;
                content: '';
                visibility: hidden;
                height: 0;
                
            }
            #father{
                zoom: 1;
            }

三、定位

CSS中可以通过left,right,bottom,top属性来设置标签上下左右的距离。但是要通过position属性设置参考对象。

absolute:相对第一个非static/initial(默认值)父标签进行定位。

relative:相对于自己在标准流中的位置来定位。(当标签本身不希望去定位,只是想让自己的子标签可以相对自己定位时使用。)

fixed:相对于浏览器定位。(滚动时位置相对于浏览器不变)

sticky:当网页的内容不超过一屏(不滚动),按照标准流定位;超过一屏就相对浏览器定位。

initial:默认值,没有相对定位。

技巧:当遇到某个方向的定位无效时,可以尝试让标签浮动然后定位。

四、盒子模型

html中所有可见的标签都是一个盒子模型:包括长和宽决定的content、padding、border、margin。
其中content、padding、border是可见的,margin是不可见的。


1、content(内容):设置width 和height影响的就是内容部分的大小。添加子标签、内容都是放在内容部分的。

2、padding(内边距):内容外围,可见部分,如果标签有背景颜色,那么这个部分的颜色和内容一致。

padding-left: 20px;
padding:10px; /*所有*/
padding:10px 20px; /*上下和作业*/
padding:10px 20px 30px 40px; /*顺时针*/

3、border(边框):border在padding的外围,如果没有padding,就在内容的外围,可以设置颜色。
border:宽度 风格 颜色
样式:solid(实线)、dashde(虚线)、dotted(点划线)double(双线)

4、margin(外边距):不可见。主要用来占位。

五、其他常用属性

1、字体相关属性

  • 字体颜色:color
  • 字体大小:font-size
  • 字体名:font-family
  • 字体加粗:font-weight:bolder(更粗的)、bold(加粗)、normal(常规)、100-900
  • 字体倾斜:font-style:italic、oblique、normal

2、文本修饰 -- text-decoration
none:取消修饰
underline:下划线
overline:上划线
line-through:删除线

3、对齐方式
text-align:left、right、center(文字水平方向居中)

margin:0px auto;(水平居中)
一行内容在垂直方向居中,可以通过将line-height的值设置为父标签的height值。(垂直居中)

height:40px;
line-height:40px;

4、首行缩进 -- text-indent
text-indent:2em
em代表一个空格的长度

5、字间距 -- letter-spacing
letter-spacing:2em

6、背景图片
格式:babackground-image:图片地址、是否平铺 x方向坐标 y方向的坐标 颜色
no-repeat/repeat/repeat-x/repeat-y(不平铺、平铺、x方向平铺、y方向平铺)

background-image: url(img/beauty.png) no-repeat center center yellow; center表示在水平或者垂直方向居中。
默认图片不够时,背景图片会平铺。

7、设置圆角

border-radius: 20px;
border-bottom-left-radius: 20px;

六、补充

制作网页首页title图标

一般写网页前一定要先将标签默认的margin值和padding值关闭。

*{ 
  margin:0;
  padding:0;
  position:relative;
}

实现元素居中
CSS中垂直居中的11种方式
CSS中元素6种水平居中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,162评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 11,437评论 2 66
  • 哈希 简介 Laravel 的 Hash 假面对存储用户的密码提供了安全的 Bcrypt 加密工具哈希化。如果你使...
    Dearmadman阅读 5,924评论 0 0
  • 清晨,我正准备去上学的时候,突然发现地面上躺着一只灰灰的,长长的,可怕啊,扭来扭去的大蚯蚓。我吓得快速地躲在妈妈的身后。
    格格的歌阅读 1,292评论 0 0

友情链接更多精彩内容