【前端学习--基础篇】CSS入门详细指南

入门级css指南,你一定用得到

 

目录

 1、CSS简介 

2 属性

2.1颜色表示

2.1.1单词表示法

2.1.2 rgb()表示法

2.1.3 十六进制表示法

2.2文字相关属性

2.2.1 font-size

2.2.2 line-height(font属性)

2.2.3 font-family字体

2.2.4 font-weight 加粗(!)

2.2.5 text-decoration属性

2.2.6 ibu

3、选择器

3.1基本选择器

3.1.1基本选择器

3.1.2 id选择器

3.1.3类选择器

3.1.4 原子类(广泛使用,优化代码)

3.2高级选择器

3.2.1后代选择器(空格 )

3.2.2交集选择器 连写 无空格

3.2.3并集选择器(逗号,)

3.2.4通配符*

4、继承性和层叠性

4.1继承性

4.2层叠性

5、浮动

5.1 简介

5.2 、字围

5.3清除浮动

6 绝对定位

6.1 如何确定参考点

6.2 祖先盒子当参考点

6.3 绝对定位元素的居中

7 固定定位

7.1 z-index属性

8 兼容问题

8.1 hack

8.1.1 html hack

8.1.2 css hack

8.2 文字样式兼容

9、透明问题

9.1 盒子透明

9.2 图片透明


 1、CSS简介 

cascading style sheet , 层叠式样式表

 

所有的css样式,一般都要写在style标签中。

style标签写在<head>里面。

 

  1. <style type="text/css">
  2.        h1{
  3.            color:red;
  4.        }

    </style>

h1是选择器

type是类型;

text/css表示纯文本的css。

 

css对换行不敏感、缩进不敏感

 

2 属性

● 文字颜色

color:red;

 

● 背景颜色

background-color:blue;

 

● 字号

font-size:40px;

px是英语pixel像素的意思。

 

● 边框

border:1px solid green; 后面三个属性一定要记着

border就是边框的意思,它的值很有意思,是三个部分,用空格隔开

这三个部分,可以顺序交换。

1px 就是粗细,可以任意调整;

solid就是实线,如果是虚线写dashed

green就是颜色,可以任意设置。

 

2.1颜色表示

 

2.1.1单词表示法

写单词名字即可

 

2.1.2 rgb()表示法

光学显示器的三原色是红、绿、蓝,依靠他们三个的不同亮度,就能组成不一样的颜色。每种颜色的亮度数值是0~255,一共256个数字。

红色:

background-color: rgb(255,0,0);

绿色:

background-color: rgb(0,255,0);

蓝色:

background-color: rgb(0,0,255);

黑色:

background-color: rgb(0,0,0);

光学显示器什么都关掉了,就是黑色。

 

白色:

background-color: rgb(255,255,255);

 

特别的,当三个数字都一样的时候,就是灰色:

background-color: rgb(111,111,111);

 

2.1.3 十六进制表示法

将RGB表示法的三个数字用十六进制表示

 

所有形如

#aabbcc;

都可以简化为:

#abc;

 

比如:

#000000

等价于

#000

 

 

表示红色:

red

rgb(255,0,0)

#ff0000

#f00

 

2.2文字相关属性

2.2.1 font-size

像素为单位

 

2.2.2 line-height(font属性)

行高

文字所在这一行的高度,称为行高。文字在行里垂直居中

 

line-height可以以px为单位,也可以用百分比为单位。

如果用百分比为单位,那么就是当前字号的百分比。也就是说:

font-size:14px;

line-height:150%;

等价于

font-size:14px;

line-height:21px;

 

由于字号和行高非常重要,所以可以和写在一起称为font属性

font:14px/28px "宋体";

等价于:

font-size:14px;

line-height:28px;

font-family:"宋体";

 

 

2.2.3 font-family字体

所以网页中,为了让所有的用户都有一致的体验,只能用宋体、微软雅黑。黑体、楷体有的也用,但是不常见。

 

有的服务器上面,为了追求css的加载速度,把字体名变为英语。 css中

font-family:”Microsoft Yahei”,”SimSun”;

等价于

font-family: "微软雅黑","宋体";

 

2.2.4 font-weight 加粗(!)

面试爱考:

bold就是粗体

font-weight:bold;

等价于

font-weight: 700;

 

不加粗,要写normal这个词

font-weight:normal;

等价于

font-weight:400;

 

总结:

font-weight:bold;  加粗

font-style:italic;  倾斜

text-decoration:underline; 下划线

 

2.2.5 text-decoration属性

 

 

2.2.6 ibu

font-style:italic;  倾斜

font-weight:bold;  加粗

text-decoration:underline; 下划线

3、选择器

3.1基本选择器

3.1.1基本选择器

 

body就是页面,如果要设置整个页面的背景颜色,要设置body

标签选择器有点不好用,要选择就都选择了。所以主要的用途就是设置一些标签的默认情况

 

3.1.2 id选择器

就是对某一个(注意就一个)元素,进行特别的样式设定的时候用。就是给元素一个特别的名字,然后通过这个名字来选择它。

给元素加上id属性,然后在选择器用#开头进行选择。

 

选择的时候写#:

  1.     <style type="text/css">
  2.        #pp{
  3.            color:red;
  4.        }
  5.     </style>

 

首先,任何元素都可以设置id属性,合法的id属性是英语字母开头(大小写敏感,也就是说aaAA是两个不同的合法id)、可以有数字、下划线、短横。

同一个页面中,id绝对不能相同。哪怕是不同的元素,id也不能相同,我们必须保证,id在页面上是唯一的

 

3.1.3类选择器

就是给某一类元素,设置相同的类名,然后通过这个类名来选择

class叫做类名。

  1.     <p class="warning">我是段落</p>
  2.     <p class="warning">我是段落</p>

选择的时候,用点:

  1.     <style type="text/css">
  2.        .warning{
  3.            color:red;
  4.        }
  5.     </style>

 

同一个标签,可以携带多个类名,用空格隔开

  1. <p class="warning xian">我是一个段落</p>

这个p标签同时携带了两个类,所以.warning选择器和.xian选择器能同时选择上他们。

 

3.1.4 原子类(广泛使用,优化代码)

用原子类是最方便的,所谓的原子类,就是一些简单的属性做成一个类,然后元素自行选择:

  1.     <style type="text/css">
  2.        .hong{
  3.            color:red;
  4.        }
  5.        .da{
  6.            font-size: 50px;
  7.        }
  8.        .xian{
  9.            text-decoration: underline;
  10.        }
  11.     </style>

各取所需:

  1.     <p class="hong da">我是段落</p>
  2.     <p class="hong xian">我是段落</p>
  3.     <p class="da xian">我是段落</p>

 

3.1.3.2 多用class,少用id

 

3.2高级选择器

3.2.1后代选择器(空格 )

后代选择器用空格表示:

 

  1.     <div class="zhengzhi">
  2.        <p>我是一些政治新闻</p>
  3.        <p>我是一些政治新闻</p>
  4.        <p>我是一些政治新闻</p>
  5.        <p>我是一些政治新闻</p>
  6.     </div>

选择这些p,可以用后代选择器:

  1.     <style type="text/css">
  2.        .zhengzhi p{
  3.            color:blue;
  4.        }
  5.     </style>

 

选择的是后代的元素,不一定是儿子,如果是孙子、曾孙子、重孙子……都行

3.2.2交集选择器 连写 无空格

一般来说,语法是:

 

  1. 标签名.类名
  2. Eg div.box  
  3.    div#box

 

 

3.2.3并集选择器(逗号,)

  1.     <style type="text/css">
  2.        p,div{
  3.            color:red;
  4.        }
  5.     </style>

等价于:

  1.        p.haha{
  2.            color:red;
  3.        }
  4.        div.xixi{
  5.            color:red;
  6.        }

 

 

3.2.4通配符*

选择所有元素,用*

<style type="text/css">
       * {
           color:red;
       }
    </style>

 

 

4、继承性和层叠性

 

 

4.1继承性

css规定,有一些属性,给某一个元素设置了,它的后代元素都同样拥有它的这个属性了

哪些属性能够继承呢?

color

text-系列 : 比如text-decoration:underline;

font-系列:  比如font-size:30px;

line-系列

 

特别的,要知道不能继承的属性:background-color、所有盒模型的属性(width、height、border、padding、margin)都是不继承的!

 

“层叠式”样式表,cascading的第二层含义,就是继承性。

第一层是多个选择器控制一个文本样式

 

 

4.2层叠性

选择器的一个基本权重: id的权重类选择器  > 标签选择器

 

一个选择器的权重计算:id的数量,class的数量,标签的数量

如果是继承而来的,权重是

 

 

我们把HTML标签分为两大类:

● 块级元素(block level):div、h系列、p、ul、li、dl、dt、dd

● 行内级元素(inline level):span、a、b、u、i、em、strong

 

块级元素:

① 能够设置宽度、高度;

② 不能并排;

③ 不设置宽度,那么宽度将默认变为父亲的width

 

行内级元素:

①不能设置宽度、高度;

②可以并排;

 

 

给任何一个元素,设置

  1. display:block;

它将转为块级元素,拥有块级元素的所有性质;

 

相仿的,给任何一个元素,设置

  1. display:inline;

它将转为行内元素,拥有行内元素的所有性质;

 

有什么用?

把一个块 → 行内  丝毫无用,工作10年都遇不见。

但是行内     非常有用!

 

5、浮动

 

5.1 简介

 

一共三个方法:

浮动:

  1. float:left;

绝对定位:

  1. position:absolute;

固定定位:

  1. position:fixed;

 

div在标准流中是一个经典的块级元素,不设置宽度在标准流中是自动撑满父亲的width。但是浮动了,就不自动撑满了,而是自动收缩了,收缩为内部文字的大小了

 

竖直方向上的margin塌陷现象消失

5.2 、字围

 

5.3清除浮动

 

父亲不能被浮动的儿子撑出高

 

overflow:hidden;有神奇的别的用处,就是能够让父亲认识自己脱标的儿子,能够让父亲被自己脱标的儿子撑出高度。

  1.     <div class="box">  →不能被撑出高了,解决办法:  overflow:hidden;
  2.        <p class="no1"></p>  → 脱标了
  3.        <p class="no2"></p> → 脱标了
  4.     </div>

 

 

 

 

 

 

 

 

 

 

6 绝对定位

 

  1. position: absolute;

绝对定位的元素,脱离标准文档流。用top、bottom、left、right来进行定位。参考的是页面的左上角。

 

 

 

6.1 如何确定参考点

如果用top值定位,那么参考点就是页面的左上角或者右上角,而不是浏览器

 

如果用bottom进行定位,就是浏览器首屏的左下角在页面中的位置。

 

6.2 祖先盒子当参考点

子绝父相:

  1. <div>  →  相对定位
  2.     <p></p>  → 绝对定位
  3. </div>

此时这个p就是以div的边框内侧为参考点进行定位。

 

一个盒子可以以某一个祖先盒子作为定位参考点,离自己最近的、已经定位了的祖先盒子。

要记住,祖先盒子不一定只有相对定位才能成为参考点,而是什么定位都行。比如,相对定位、绝对定位、固定定位。

除了“子绝父相”之外,“子绝父 绝”也是一个典型的定位模型;“子绝父固”也是一个典型的定位模型。

祖先中离自己最近的、已经定位的元素:

  1.     <div class="box1">  → 没有定位
  2.        <div class="box2">   → 相对定位
  3.            <div class="box3">   → 绝对定位
  4.               <div class="box4">   → 没有定位
  5.                   <p></p>
  6.               </div>
  7.            </div>
  8.        </div>
  9.     </div>

所以p以.box3为参考点;.box3以box2为参考点。

 

绝对定位的元素,无视参考盒子的padding

 

 

 

6.3 绝对定位元素的居中

绝对定位盒子已经不属于标准文档流了,所以不能使用margin:0 auto;来居中了。那么绝对定位的盒子如何居中?

  1. position: absolute;  
  2. left:50%;
  3. top: 0;

left:50%;指的是元素的左边线是50%的位置。这点和background-position不一样。

所以要往回拉一半的自己宽度。

 

 

  1.     <style type="text/css">
  2.        div{
  3.            width: 600px;
  4.            height: 200px;
  5.            background-color: yellowgreen;
  6.            position: absolute;  
  7.            left:50%;
  8.            top: 0;
  9.            margin-left: -300px;
  10.        }
  11.     </style>

 

绝对定位在老家不留坑,绝对定位的元素就是飘起来了,真实位置也是飘起来了。

所以在页面中特别常用。

 

固定定位

  1. position:fixed;

固定定位脱标,参考点是浏览器的角。

随着窗口的卷动,固定定位的元素不会在视口中消失。

 

固定定位的参考点一定是浏览器,我们无法让一个盒子当做fixed定位的参考点。

至此我们已经全部学习了脱标的3种方法:

浮动、绝对定位、固定定位

 

这三种脱标的方法,只能有一种作用在同一个元素身上。不存在一个元素同时浮动、同时绝对定位的情况。

 

我们给一个父亲overflow:hidden; 这个时候父亲就能认识浮动儿子的高度了,就能被儿子撑高了。

但是,绝对定位、固定定位的儿子,父亲永远不可能被他们撑高!

 

 

 

7.1 z-index属性

负责设置压盖顺序,谁压盖谁的问题。

先说的默认的压盖顺序:

1) 定位了的能够压住没有定位的;

2) 如果都定位了,那么HTML顺序后面的能够压住前面的;

  1.     <div class="box1">1</div>  → 没有定位
  2.     <div class="box2">2</div>  → 绝对定位
  3.     <div class="box3">3</div>  → 相对定位

3压住2和1; 2压住1

 

z-index没有单位数字大的能够压住数字小的

  1. z-index: 5;

 

从父现象:父亲怂了,儿子再牛逼也没用。

  1.     <div class="linzhiying">   →  z-index:9;
  2.        <p class="kimi"></p>  → z-index:100000;
  3.     </div>
  4.  
  5.     <div class="wangjianlin">   → z-index:10;
  6.        <p class="wangsicong"></p> → z-index:无论是多少肯定能压住kimi因为父亲z-index
  7.     </div>

 

8 兼容问题

最好的判断一个浏览器能力的测试,就是HTML5的支持测试。

www.html5test.com

满分555分,是所有HTML5、CSS3的新特性,支持就得1分,不支持不得分。

 

8.1 hack

Hack就是针对不同的浏览器去写不同的HTMLCSS样式,从而让各浏览器能达到一致的渲染效果。

Hack分为两大类:HTML hack、CSS hack。

 

 

8.1.1 html hack

下面这段html代码只能在IE6、7中运行,IE8不运行。

  1.     <!--[if lte IE 8]>
  2.     自定HTML内容
  3.     <![endif]-->

lte:less than or equal

 

上面的这个壳子很神奇,IE6、7、8会渲染里面的内容;而IE9、IE10、Chrome等等浏览器都会认为这些代码是注释。

所以,我们可以用这个方法,单独的为IE浏览器写特殊的HTML标签。

感谢微软,浏览器比较烂,但是给我们留了Hack的后门,自知之明。

 

如果版本小于等于IE8,那么识别,否则当做注释了:

  1. <!--[if lte IE 8]>
  2.  
  3. <![endif]-->

如果版本小于IE8,那么识别,否则当做注释了:

  1. <!--[if lt IE 8]>
  2.  
  1. <![endif]-->

如果版本大于IE8,那么识别,否则当做注释了:

  1. <!--[if gt IE 8]>
  2.  
  1. <![endif]-->

如果版本大于等于IE8

  1. <!--[if gte IE 8]>
  2.  
  1. <![endif]-->

如果版本是IE6:

  1. <!--[if IE 6]>
  2.  
  3. <![endif]-->

 

8.1.2 css hack

CSS HACK又分为两类:值Hack 和 选择器Hack

 

hack

IE6专用的“hack符”就是短横、下划线。

  1.        div{
  2.            width: 200px;
  3.            height: 200px;
  4.            background: red;
  5.            _background: blue;
  6.  
  7.        }

那么高级浏览器不识别_background:blue;这行语句的,视为这是unknown property name;

  1. _background:blue;

等价于:

  1. -background:blue;

 

 

如果想同时调教IE67

hack符可以是任意一个: ! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */

比如:

  1.     <style type="text/css">
  2.        div{
  3.            width: 200px;
  4.            height: 200px;
  5.            background: red;
  6.            !background:green;
  7.        }
  8.     </style>

高级浏览器、IE8、IE9、IE10渲染为红色,而IE6、7渲染为绿色。

 

 

如果想调教IE8和9,hack符写在后面,分号前:

  1. background-color: blue\0/;

那么只有IE8、9会认识这行语句。

 

 

如果想调教IE 6、7、8、9、10 ,那么hack符写在后面,分号前:

  1. background:red\9;

 

 

选择器hack

用的不多

 

8.2 文字样式兼容

IE6、7、8中,所有有超级链接的图片,都默认有一个蓝色边框:

 

解决办法:

  1. a img{
  2.     border:none;
  3. }

或者干脆:

  1. img{
  2.      border:none;
  3. }

 

 

9、透明问题

9.1 盒子透明

  1. opacity: 0.40;

opacity就是透明度的意思,能够背下来这个单词。值是0~1;1就是实心,0就是纯透明。

 

IE6~8不支持。要写IE自己的属性,自己的滤镜的属性:

  1. filter:alpha(opacity=40);

 

要注意的是,里面的文字也一起有透明了。解决办法就是不要把有opacity属性的盒子里面写文字。把文字单独放出去,用绝对定位给定位到一起:

  1.     <div class="box">
  2.        <img src="images/1.jpg" alt="" />
  3.        <div class="title"></div>  → 半透明黑色
  4.        <span>文字文字文字文字</span>  → 白色文字,给定位到一起。
  5.     </div>

 

 

9.2 图片透明

 

jpg/jpeg  

压缩格式,是颜色失真的,为了保存尺寸小,所以有压缩算法,所以是颜色失真的。网页中的照片、新闻图片、banner、焦点图都要用jpg的格式,因为这样保存的尺寸就小。没有图层。不支持透明和半透明。在导出之前,用导出预览调整一下“质量”。

 

 

 png

不可压缩,颜色不失真,是fireworks这个软件的默认保存格式,可以有图层

在传到服务器上面的时候,所有的png图片,一定要记住去掉所有图层!去掉的方法很简单,就是“文件导出”。我们说jpg是压缩的,png是不压缩的。但是,同一个图,jpg不一定比png尺寸小,

我们经过测试,发现这样的图片jpg的尺寸更小

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

但是这样的简单的图片png的反而更小:

uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif转存失败重新上传取消uploading.4e448015.gif转存失败重新上传取消

所以,网页上的杂碎图标,都要存为png,尺寸更小!

png支持透明和半透明。

 

 

 

 

gif

gif不是压缩不压缩的问题,它就支持固定数量的颜色,可以是256种,可以是128种,可以是64种……2种。

所以是严重颜色失真!根本表示不全自然界的所有颜色!

支持动画!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值