CSS技术概要总结

CSS的背景知识

为什么需要css技术?

咱们需要看看css是处在一个什么样的技术位置,web的html页面需要浏览器进行访问,而浏览器又是运行在操作系统上的,操作系统又是运行在不同的硬件设备上的,所以css的技术需要一些基础背景知识:硬件设备、操作系统、浏览器、html、js。

为什么需要把角度上升到硬件设备这一层呢?因为手机和显示器的硬件分辨率不一样,会存在尺寸兼容问题,所以界面上展示的尺寸单位是有区别的,同样的px,不同的PPI显示效果不一样。另外不同设备运行的操作系统不一样,能使用的浏览器也不一样,比如window的IE,苹果的safari、安卓的chrome等。不同的浏览器支持的css特性也是有区别的,特别是最新的css3标准。

CSS在这个技术系统中的位置,就是在浏览器中用来对html的内容进行展示美化作用,让HTML内容结构和页面展示效果进行分离。

css和html的关系,就像房屋装修一样,房屋的每一个墙面就是一个浏览器页面,我们就拿电视墙来做比喻,html就是墙上需要展示的内容(电视机、背景墙、装饰灯等),css就是设计师的设计方案,电视机的居中位置、背景墙的颜色和大小、装饰灯的效果等。

css设计的初衷是解决web1.0时代的图片和文字展示,所以一切的技术方案都是从这里出发。后面随着互联网的发展,web内容不再是只有图片和文字,还有更多的比如视频、游戏、移动端、多屏幕尺寸等需求,才推出了HTML5体系。HTML5体系=HTML5+CSS3+JS,三部分技术内容。暂时先不讨论css3的新特性,还是首要弄清楚css2.1时代的内容。

CSS2.1技术内容

盒子模型

html在浏览器中展示给用户,首先css需要确定html的内容用什么样的形式来展示?css将html的标签定义成了一个盒子模型,就像快递的包裹盒子一样,标签的内容就是快递的商品,然后用一个盒子来打包商品,商品与盒子之间有一个缓冲区间,而打包的盒子是由具有厚度的纸板组成,最后打包好的包裹堆放在一起的时候,包裹与包裹之间有一个间距。对应起来css的概念就是商品content、缓冲区padding、纸箱的纸板border、包裹间距margin。多个包裹可以打包成一个大包裹,所以盒子模型是可以嵌套的。
在这里插入图片描述

技术点:盒子尺寸、盒子类型(inline、block、inline-block、none)、背景颜色、背景图片、margin合并问题、100%和auto不一样、滚动条。

最佳实践:
父子节点用padding、兄弟节点用margin;
尽量不要设置100%,默认auto;
block元素才能设置尺寸大小,inline的无法设置;
盒子类型决定盒子的展示布局,慎用inline-block,默认盒子间有空白,需要配合浮动使用。

文档流

盒子该如何进行摆放呢?
有了盒子模型的概念,那么html就是最大的一个盒子,其他内容都是嵌套在它里面的。还是回到刚刚提到的电视墙概念,盒子的摆放顺序是从左到右、从上到下,这个顺序就称为文档流。

定位(position)

当然文档流的顺序无法满足很多实际场景需要,才补充了脱离文档流的方案,浮动、绝对定位、相对定位。

浮动(float),类似水流一样,具有流动的方向,盒子在水流上,就会跟着水流方向流动,碰到同向上其他盒子才停止。

绝对定位,直接根据坐标进行定位。
(absolute)根据父节点为坐标系;
(fixed)根据浏览器窗口为坐标系。

相对定位(relative),是相对于节点本身原有位置,进行坐标定位。

技术点:文档流顺序、浮动、绝对定位、高度坍塌、浮动副作用、层级遮挡。
最佳实践:
浮动需要注意高度坍塌和清除浮动,两种方式,父节点的伪元素和末尾节点的clear;脱离文档流后就存在层级遮挡问题,需要设置z-index。

伪元素

html已经存在的元素之外,还可以通过css来定义伪元素。类似于servlet中的拦截器,在处理请求的前后添加额外的业务逻辑。

常用伪元素:
:first-letter、:first-line、:before、:after、:hover

超链接:
:hover、:link、:visited、:avtive

最佳实践:利用hover等伪元素,可以让CSS实现js的效果。

图文相关

css设计之初就是针对图文进行美化,所以图片和文字有很多特定属性。
常用的图片尺寸、字体大小、字体类型。
字体大小还涉及到硬件设备,绝对的px,相对的em、rem。
图片还涉及到性能优化,用数据来替换图片等技术。

选择器

CSS技术就是给盒子设置不同的属性值,来对盒子进行美化。
那么怎么选择指定的“盒子们”呢?
就需要CSS提供的多种盒子选择器了。

常用选择器:
html标签选择器、类选择器、id选择器、属性选择器、后代选择器、子元素选择器。

最佳实践:选择器的合理使用,可以减少class定义数量,并且进行批量处理。

CSS3

新增了动画、阴影、圆角等。

关键属性

display:none/block/inline/inline-block
width、height、min/max-width、min/max-height:auto/100%/10px
padding、border、margin
float:left、right
position:fixed、relative、absolute
clip、overflow、z-index、cursor、opacity:透明度

ul,li,p,div,span {
    margin:0px;
    padding:0px;            
}

.clearfix:after {
    content: '\200B';
    clear: both;
    display: block;
    height: 0;
}
.clearboth {clear:both;}

li {
    list-style: none;
    background-color: beige;
}

a:link,a:visited,a:hover,a:active {
    color: #000;
}
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值