CSS核心样式及应用(二)

在学习了html和css的基础之后,接下来开始学习css的核心样式语法及其应用。
在学习中我们不仅要悉知css的样式语法,如何去使用css让页面达到我们想要的结果。也要知道在css一些属性在浏览器加载中,可能遇到的兼容性问题和遗留的问题。

标准流文档

标准流文档是指元素排版布局时,按照从左到右,从上到下的排列方式。HTML就是一种标准流文档。

微观现象

① 空白折叠现象
② 文字类元素排在一行会出现底边对齐的现象。
③ 元素一行内容写满元素的width时会自动换行。

元素等级

在标准流中,习惯将元素分为:块级元素、行内元素、行内块元素等。

  • 块级元素:大部分容器级表情包括p均为块级元素,例如

    等。
    特点:
    ① 可设置宽高;
    ② 独占一行;
    ③ 不设置宽度,会自动撑满父级width,不设置高度,会被内容撑开。
    底边对齐.PNG

CSS常用样式-显示模式

每个元素都有自己在浏览器中的默认加载模式,但是可以通过display属性来更改标签的显示模式。

属性值 作用
block 以块级元素加载
inline 以行内元素加载
inline-block 以行内块元素加载
none 标签及内容直接隐藏

总结:display属性更改的显示模式并没有改变标准流本质属性,页面依旧只能从上往下加载,并且存在空白折叠现象。

CSS常用样式-浮动

float 浮动是脱离标准流的方式一。

属性值 作用
left 左浮动
right 右浮动

浮动属性

  1. 浮动的元素具备行、块元素的性质。既可设置宽高,还可并排一行不会出现空白折叠现象;若不设置宽高,被元素内容自动撑开。
  2. 以left为例:父元素宽度足够,元素依次向左进行贴边。

利用浮动贴边性质,可完成导航栏等多种网页布局效果。

  1. 浮动的元素没有margin塌陷
    浮动元素已经脱离标准流,不再具有margin塌陷现象。
  2. 浮动的元素让出标准流位置
    元素浮动后,会将原来占有的标准流位置让给后面的同级元素。
.box1 {
      float: left;
      width: 50px;
      height: 50px;
      background-color: pink;
    }
    .box2 {
      width: 100px;
      height: 100px;
      background-color: skyblue;
    }
浮动元素让出标准流位置.PNG

注意:在IE6、IE7浏览器中,有兼容问题。一般不允许父元素中子元素有的浮动有的不浮动,同级元素有一个浮动其他也要浮动。

IE6、7兼容问题.PNG
  1. 字围现象
    同级元素中前面元素浮动,后面元素不浮动,且不浮动字体有文字,文字不会被浮动元素所盖住。


    字围现象.PNG

可利用该现象制作一些特殊的文图效果,例如百度百科。

浮动产生的问题

  1. 在标准流中,元素不设置高度,能被内部的内容标准流元素撑开,但是内部子元素浮动后,浮动元素撑开标准流父亲。
  2. 父元素没有高度,会影响后面元素标准流位置,若浮动子元素足够高,可能会影响后面浮动元素贴边。

清除浮动的方法

  1. 浮动的子元素高度不能变化情况下,给标准流父元素合适的高度height。
    问题: 子元素高度不能变化。
  2. 给父元素添加clear属性,不再受前面浮动影响,不会再占有浮动让出的位置。
    问题: 父元素高度不能自适应,若两个父元素有margin,效果不正确。
  3. 在两个父盒子之间,添加一个标签带有clear:both属性的
    。不再受前面浮动影响,不会再占有浮动让出的位置且解决了margin的问题。
    问题: 父元素没有高度自适应。
  4. 在父元素内部,所有浮动子元素最后添加一个空的标签带有clear:both属性的
/* 在父元素添加伪类,在子元素最后清除浮动 */
.clearfix:after {
  content:"1";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

缺点: 如果页面浮动元素很多,需要添加很多没有语义的空标签,HTML结构冗余。

  1. 溢出隐藏!! 给内部有浮动的子元素的父亲添加overflow:hidden属性,可解决浮动所有问题。

小偏方:浏览器加载盒子尺寸时,遇到溢出隐藏属性,浏览器会强制检索子元素高度,不论子元素是标准流还是浮动。

CSS常用样式-的伪类选择器

  1. 伪类选择器添加的样式不一定立即加载到浏览器上,只有用户触发对应行为,伪类选择器才会立即加载。
  2. 权重与普通选择器相同。
/* a的四个伪类选择器 */
a:link {    /*访问前状态 */
  color: gray
}
a:visited {   /*访问后状态 */
  color: cyan; 
}
a:hover {   /*鼠标悬浮状态 */
  color: red;
}
a:active {    /*鼠标点击状态 */
  color: yellow
}

注意:书写顺序必须是:访问前link、访问后visited、鼠标悬浮hover、鼠标点击active。(其他标签也可设置:hover伪类状态)

CSS常用样式-背景属性

  • 背景颜色 background-color
  • 背景图片 background-image
  • 背景重复 background-repeat
  • 背景定位 background-position
  • 背景附着 background-attachment

背景颜色 background-color

作用:在盒子区域添加背景颜色的修饰
加载区域:在border及以内加载背景颜色。

背景图片 background-image

作用:给盒子添加图片的背景修饰。
加载区域:默认的加载到border及以内部分。若图片不重复,加载从border以内开始。

  div {
    background-image: url(images/1.jpg)
  }

背景重复 background-repeat

作用:设置添加背景图是否重复进行加载。

属性值 作用
repeat 重复,默认属性值
no-repeat 不重复
repeat-x 水平重复
repeat-y 垂直重复

背景定位 background-position

作用:设置不重复图片在背景区域的加载开始位置。
属性值:单词、像素、百分比表示法。

单词表示法

水平方向:left、center、right
垂直方向:top、center、bottom

像素表示法

background-position: 100px 50px;
正数:图片针对盒子的原点向右、下移动。
负数:图片针对盒子的原点向左、上移动。

百分比表示法

100%代表的数值:
水平方向,盒子border以内的背景区域宽度减去图片的宽度。
垂直方向,盒子border以内的背景区域高度减去图片的高度。

背景附着 background-attachment

作用:设置背景图片是否随着页面或盒子的滚动而滚动。

属性值 作用
scroll 滚动的,背景图片随着页面滚动而滚走
fixed 固定的,背景图定位参考点变成了浏览器左上定点,页面滚动时,浏览器左上定点不变,导致背景图固定在浏览器窗口某个位置,不会随页面滚动而滚走

综合写法 background

5个属性值之间可互换位置

background: url(images/bg.jpg) no-repeat center top fixed #fff;

背景属性的应用

① 替换插入图

是权重最高的标签,

内容的文字可以提高SEO搜索排名,如果设置logo,就无法书写搜索关键字。

解决办法:
使用css添加背景图给标签或

标签;并用text-indent属性把文字给隐藏掉。


重要文字

文字隐藏方法兼容性问题:
①将字号设置为0。IE8及以上或高版本浏览器可以隐藏文字,但IE7及以下有兼容问题。
设置text-indent属性并给一个很大的负值,再设置溢出隐藏属性,将溢出文字隐藏。
注意:text-indent属性在块级或行内块元素才生效

② padding区域背景图
在盒子中既有背景图部分,而且有文字内容,可在背景区域使用padding挤出位置。

.news li {
  padding-left: 25px;
  background: url(images/star.png) no-repeat left center;
}

③ 精灵图
用户访网站时,网页上每一张图片都需要经过一次请求才能展现给用户,为了提高页面加载速度,可将一个页面中涉及到的零星背景图片都集中到一张大图,这时只需要向服务器发送一次请求。
可使用一些在线工具,快速生成精灵图。


精灵图.PNG

CSS新增背景属性-背景半透明属性 rgba

css3在颜色值中,增加了一种rgba模式。

div {
  background-color: rgba(0,255,0,0.4)
}

注意: 背景半透明是指盒子背景半透明,盒子内容不受影响。

同样,可以给文字边框半透明

div {
  color: rgba(0,0,0.0.3);
  border: 1px solid rgba(0,0,0,0.3);
}

CSS新增背景属性-背景缩放 background-size

通过background-size设置背景图片的尺寸。

属性值 作用
px值 只设置一个值,垂直方向等比例拉伸;设置两个值,按设置值加载
百分比 同像素值设置方法相同,设置百分比时,数值参照盒子的宽、高属性
cover 自动调整缩放比例,把背景扩展足够大,使背景图像完全覆盖背景区域。如有溢出部分则会被隐藏
contain 自动调整缩放比例,把图像扩展至最大尺寸,保证图片始终完整显示在背景区域。

CSS新增背景属性-多背景

css3中规定,一个盒子上,可添加多个背景图片。

  div {
    background-image: url(bg_1.jpg),url(bg_2.jpg);
  }

注意:背景加载时,先写的背景压盖后写的背景图片。

CSS常用样式-定位类型及特点

  • 相对定位
  • 绝对定位
  • 固定定位

相对定位

属性值:relative
参考元素:标签加载的原始位置,要搭配偏移量属性才能发生位置移动。
性质:相对定位元素不脱离标签的原始状态(标准流、浮动),不会让出原来占有的位置。

  div {
    position:relative;
    left:100px;
    top:100px;
  }

注意事项:
① 偏移量属性分正负值。由于参考元素是自身,left的正值等于right的负值
② 同一方向不能设置两个偏移量属性,若设置了,只加载left和top属性。

实际应用
  1. 相对元素比较稳定,不会随意让出位置,可将相对元素作为绝对定位的参考元素。
  2. 可在占有原始位置的情况下,对加载区域进行位置微调.例如:文字上标或下标。

绝对定位

属性值:absolute
参考元素:参考的是距离最近的有定位的祖先元素,如果祖先都没有定位,参考。要搭配偏移量属性才能发生位置移动。
性质:绝对定位会脱离标准流,让出标准流位置,可设置宽高。不设置宽高只能被内容撑开。

注意:绝对定位参考元素不固定,参考点不同,left正值不再等于right的负值。

为参考元素的参考点

有top参与的定位,参考点是的左上、右上顶点。自身对比是盒模型属性最外面的左上角或右上角。有bottom参与的绝对定位,同理。

祖先级为参考元素

参考点事盒子border以内的四个顶点,组合方向决定参考点。绝对定位元素只关心对比点和参考点间的距离,会忽视参考元素的padding区域。
例如:left、top:参考点是祖先border以内左上顶点,对比点是盒子自身的左上角。

固定定位

属性值:fixed
参考元素:浏览器窗口
参考点:浏览器窗口四个顶点,由于浏览器四个顶点位置不会变化,因此元素会始终显示在定位位置。
性质:固定定位元素会脱离标准流,让出标准流位置。

定位应用

压盖效果

绝对定位元素脱标,不占标准流位置,常见的是绝对定位制作压盖效果。

居中

定位的元素,如果想在参考元素居中显示:
① 居中方向使用偏移量属性,例如设置left:50%
② 给绝对定位子盒子设置同方向margin值,属性为负的自身宽度的一半。

.father {
  /* 父盒子 */
  position:relative;
  width: 100px;
  height: 50px
}
.child {
  /* 子盒子 */
  position: absolute;
  left: 50%;
  width: 200px;
  margin-left: -100px;
}

不论子盒子宽度是否大于参考元素,都可用该方法设置居中。

扩展应用

① 可解决标准流中,宽的子盒子在窄的父盒子的居中显示。
② 可在不改变原始元素浮动状态下,利用相对定位居中方法。

压盖顺序

默认压盖顺序

定位的元素,都会去压盖标准流或浮动的元素。
如果都是定位的元素,在HTML中后写的压盖先写的定位。

自定义压盖顺序

更改压盖顺序,可设置z-index属性。
属性值:数字。
① z-index属性值大的会压盖小的
② 属性值相同,比较书写顺序。
③ z-index属性只对设置了定位的元素生效。
④ 若父级没有设置z-index,子级z-index大的会压盖小的;若父级设置了z-index,无论子级多少,父级大的子级压盖父级小的子级

小练习:轮播图静态结构布局。

你可能感兴趣的:(CSS核心样式及应用(二))