CSS的学习

](http://upload-images.jianshu.io/upload_images/2658855-d08481501ae13976.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

  • CSS语法格式
Paste_Image.png
  • CSS选择器
     基本选择器
    (1)"
    "选择器:通配符
      将匹配所有的HTML标记,所有的标记都会改变的
      语法:*{color:red;}
    注意:尽量少用,因为IE6不支持
Paste_Image.png

(2)标签选择器(在一个HTML要变样式的情况下)

描述:将匹配指定的html标记
语法:h1{color:red;}
注意:选择器的与HTML的名称一样,但不能加尖括号

Paste_Image.png

(3)class选择器(类选择器)(两个HTML标记要变成同一样式的情况下,是使用频率最高的)

  • 描述:给一类HTML标记加样式,这里所指的”一类“是:每个HTML标记都会有一个class属性,且class的属性一样.class是 公共属性, ,每个html都有。
  • 类选择器的名称,必须以"."开头,后跟HTML标记的class属性的值。例如:.box{color:red}
  • HTML标记的class属性的值,不能以数字开头。
Paste_Image.png
Paste_Image.png
  • id选择器
    描述:给指定id的元素添加样式
    注意:网页中HTNL标记的id属性的值,必须是唯一的。
    每一个HTML标记都有一个id的公共属性 
    注意:id属性一般是给js用的,不是用来夹样式的。Class属性只能给CSS用,不能给JS用的,class属性加样式,id属性加动画

  • id选择器的名称,必须以"#"开头,后跟html标记的id属性的值。


    Paste_Image.png
  • 组合选择器
    (1)多元素选择器

  • 给多个元素加同一样式,多个选择器之间用逗号","隔开

  • 举例:h1,div,body{color:red;}


主要是因为网页中有两个<p>标记,所有使用了一个class做区别。
(2)后代元素选择器(门户网站用的多,最常用)
描述:给某个标签的后代元素加样式
举例:div .title{color:red:}

Paste_Image.png

想让<h1>加背景色
Paste_Image.png

另外一种
Paste_Image.png

想让<h1>变黄色<p>变棕色
Paste_Image.png

Paste_Image.png

     代码的效果如下

Paste_Image.png

3 子元素选择器
描述:给某个元素的子元素添加样式
举例:div>h1.title{color:red;}

Paste_Image.png

代码效果如下:

Paste_Image.png

Css尺寸属性

width:元素属性。一定要PX为单位
height:元素高度

CSS字体属性

  • font-size:字体大小
  • font-family:字体
  • font-syle:斜体,取值:italic;
  • font-weight:粗体,取值:bold;

CSS文本属性

  • color:文本颜色
  • text-decoration:文本修饰线:none(无), underline(下划线),overline(上划线) ,line-through(删除线)
  • text-align
  • line-height:行高,可以固定值,也可以百分比
  • text-indent:首行缩进,如: text-indent:28PX
  • letter-spacing:字间距
Paste_Image.png
Paste_Image.png

Paste_Image.png
Paste_Image.png
Paste_Image.png

注意:1、<div>是块元素,它不能装在行内元素中,所以在行内元素内加用<span>。例如,<div>是夹在一个段落中,而<span>是在段落中,就是要对几个字不足一段落加样式。

2、写选择器的时候要一层一层写,方便以后修改,快速找到所选取区域。

3、class是为了让相同的HTML的标记区分开来。意思是说,只要同一级有两个相同(或者多个)HTML(如div,span,h1,p标记),都应该用class重新命名。

4、子代选择器:只对应用对象的直接相应子节点有效。

后代选择器:对应的对象内的所有相应子节点都有效。(儿子div1,孙子div2,重孙div3)如:div1 div2{.},则,孙子,重孙都会变样式。div1>div2(只是孙子变,重孙不变)

。。。。。。
。。。。。。

伪类选择器(用的比较多):给超链接加样式(链接的不同状态加样式)

  • 一个超链接,有四个状态
    (1)正常状态(:link):鼠标放上之前链接的样式
    (2)放上状态(:hover):鼠标放在连接上的样式
    (3)激活状态(active) :按住鼠标左键不松开的样式,这个状态一般不用
    (4)访问过的状态(visited):按下鼠标左键,并弹起,这时的样式效果。

  • 在平常工作中会使用以下写法,来给链接加不同样式:
    a:link,a:visited{color :#444,text-decoration:none}//"将正常状态和访问过的状态"合二为一。
    a:hover{color:#990000;text-decoration:underline} //“”鼠标放上“”单做一个效果。

Paste_Image.png

效果如下




CSS列表属性

Paste_Image.png

效果如下。。。。。。。

Paste_Image.png


CSS边框属性:每个元素都可以加边框线

(1)border-left:左边框线。
语法格式:border-left:粗细,线型,线的颜色
举例:border-left:5px dashed red;
线型:none(无线),solid(实线),dashed(虚线),dotted(点状线)
(2)border-right:右边框线
(3)border-top:上边框线

注意:行内元素没有<height>,<width>属性,块元素才有。

.

Paste_Image.png

效果如下

Paste_Image.png

CSS内边距属性:边框线到内容的距离

注意:平常我们所说的width和height属性,他们指内容的宽度和高度,不含内、外边距、边框线。
(1)Padding-left:左内填充距离,左边线到内容间的距离
(2)Padding-right:右内填充距离,右边线到内容间的距离
(3)Padding-top:上内填充距离,上边线到内容的距离
(4)Padding-bottom:下内填充距离,下边线到内容的距离。
(5)缩写形式:Padding:10px//表示四个边的内填充都为10
Padding:10px 20px//上下内填充为10,左右内填充为20
Padding:5px 10px 20px//上内填充为5,左右为10,下为20
padding:5px,10px,15px,20px//上为5,右为10,下为15,左为20(顺时针排序)

Paste_Image.png

效果如下:

Paste_Image.png

.
.

CSS外边距属性:边线往外的距离

概念
Paste_Image.png
Paste_Image.png

效果如下

Paste_Image.png
  • 我们可以把网页中的每个元素,都可以看成是一个"盒子"
    盒子有哪些特征:内容的宽度和高度,边框线,内填充,外边距。
Paste_Image.png


CSS背景属性

background-color:背景颜色
background-image:背景图片 如:background-image:url(image/bg.gif)
background-repeat:背景平铺方式,取值no-repeat(不平铺),repeat-x(水平方向),repeat-y(垂直方向)
background-position:背景定位。background-position:left,center,right,top,center,bottom.
固定值定位:background-position:50px 50px/背景距离容器左边50px,从起顶端50px。
用百分比表示:background-position:50% 50%//水平居中,垂直居中

  • 简写方式:
    background:背景色 背景图 平铺方式 定位方式
    举例:background:#ccc url(imgages/bg.gif) no-repeat center;

综合案例

Paste_Image.png
Paste_Image.png

效果如下:

Paste_Image.png

套路

  • /全局CSS设置/
    (1)去除所有标记的内外填充。padding=0,margin=0(div和span不用)
    (2)项目符号ol,ul去掉符号:list-style:none
    (3)全局链接:a:link,a:visited{color:blue;text-decoration:none;清除超链接的默认下划线}
    a:hover{color:red;}
    (4)body{font-size:12px;color:#444,background-color:#ccc/灰色;是指body中的普通文字,不加链接的文字的大小和颜色//是指整个body网页中的背景色/

大的div模块
div{width:600px;
margin:40px auto;/div在网页中居中显示/
background-color:#fff; /白色,是指DIV大容器的背景色/}

下一级的div,一般是h1.
h1{padding:10px,0,10px/上下填充10pX,左右不填充,因为要标题居中/
text-align/居中/}

下一级的div,加入为p
p{line-height:150%,/原来行高的1.5倍/
text-indent:36px;/首行缩进/
padding:14px 0;}

例如

Paste_Image.png

效果如下

Paste_Image.png

;;CSS浮动与清除

Float:让元素浮动,取值:left,right
clear:清除浮动,取值left(清除左浮动)、right(清除右浮动、both(同时清除)

  • 1CSS浮动
    浮动的元素,将向左或向右浮动,浮动到包围元素的边上,或上一个浮动元素的边上为止。
    浮动的元素,不再占空间了,浮动的元素的层级要高于普通元素。
    浮动的元素,一定是块元素,无论他以前是什么是块元素还是浮动元素
    如果浮动的元素没有指定宽度的话,浮动后它尽可能的变窄。因此,浮动元素要定宽和高
    一行的多个元素,要浮动一起浮动。
  • 浮动的功能:可以实现多个块元素并列排版
Paste_Image.png
Paste_Image.png

相当于三个DIV飞起来了,打的DIV没有东西了

  • 如何让包围元素包围浮动元素?
    你就需要在浮动元素的下边,使用清除浮动元素
Paste_Image.png

效果

Paste_Image.png
  • 2、CSS清除浮动
  • CSS清楚浮动的功能(1)、可以使包围元素从“”视觉上“”包住浮动元素。在只有浮动元素中的情况下(2)清除之下的其他元素将恢复默认排版。有浮动元素和普通元素的情况下,不清除浮动会影响普通元素的排版。
  • 有浮动就有清除
  • 如果包围元素指定了高度,那么可以不适用清除
Paste_Image.png

Paste_Image.png

效果如下

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

CSS继承性

  • CSS属性继承:外层元素的样式最终会被内层元素继承。多个外层元素的样式,最终都会叠加到内层元素中。
  • css文本属性都能继承:color,font-size,font-family,font-style,font-weight
    text-align,text-decoration,text-indent,letter-spanning,line-height
提示:<body>中的CSS属性,会被所有的子元素继承。

CSS的优先级

(1)单个选择器的优先级
行内样式>id选择器>class选择器>标签选择器
(2)


Paste_Image.png





Paste_Image.png
Paste_Image.png
Paste_Image.png

效果如下:

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

Paste_Image.png

2、相对定位,position:relative;

  • 相对定位,是相对于“原来的自己”进行定位。
  • 相对定位,依然占空间,层级高于普通元素。
  • 如果不指定定位坐标的话,相对定位元素的位置原地不动。
  • 相对定位,原来是行内元素,定位也是行内元素;原来是块元素,定位后也是块元素。
Paste_Image.png
Paste_Image.png

提示:相对定位和绝对定位,一般情况下是配合使用。

.
.
3、绝对定位position:absolute
(1)相对于祖先定位元素(相对定位,绝对定位),来进行定位的。
(2)绝对定位元素,不占空间,层级要高于普通元素
(3)如果不指定坐标的话,绝对定位元素的位置原地不动。
(4)如果他的父元素没有任何定位的话,再往上找定位元素。

Paste_Image.png
Paste_Image.png

实例

Paste_Image.png
Paste_Image.png
Paste_Image.png

效果

Paste_Image.png



HTML引入CSS的方法

1、嵌入式
通过<style>标记,来引入CSS样式。
语法格式:<style type="text/css"></style>
提示:<style>中的CSS样式,只能给当前网页来使用。
同一个网页中,<style>标记可以用多次

Paste_Image.png

2、外联式
通过<link>标记,来引入一个外部的CSS文件(.css),这样的话,可以实现公共的CSS代码被多个网页共享。
<link rel="stylesheet" type="text/css" href="css/public.css"/>




3、行内式(主要用于JS控制元素的样式,前面两个主要用于前台排版用)
每个HTML标记,都有一些公共的属性:class,id,title,style
HTML标记中style属性的值,与CSS中样式一模一样。

提示:行内样式中,CSS代码不能写的过多。

             行内样式中,多个CSS属性不能换行,需要一行写完。
            行内样式优先级是最高的

CSS表格属性




盒子模型

我们可以把每一个html标记,都看成是一个盒子
这个盒子有哪些特征:内容宽度或者高度、边框线、内填充、外边距。
盒子的总宽度=内容的宽度+边框宽度2+左填充2+左外边距*2


注意:两个盒子中间的距离是外边距做成的,除此情况一般不用外边距,大部分用内填充

上下外边距合并问题(无法避免)

  • 上下两个块元素,如果每个元素都指定了四个外边距,那么上下相邻的那个外边距会合并,取其中较大的外边距。
Paste_Image.png
Paste_Image.png


Paste_Image.png

排这张图得到哪些启发

1、一个class指定两个类别。如contnet floatL和contengt floatR,这两个模块的.content下的CSS样式一起用(猪样可以省这部。)

Paste_Image.png

针对两个一模一样的内容,又需要float浮动。
2、 图中的1,2,3,4,5,6是利用背景图片做的。背景图片的高度就是<li>的行高。
3、图片与段落文字间,如果图片与整段文字要有距离,用padding,如果只是第一行用text-indent.注意要设置段落的宽度,才能在图片边上,不然全在图片下面。
4、要想市文字在<li>中居上下的中间,要用line-height:li的高度。
5、不是所有板块中都用div,如本例中左右板块没用div,图片与段落有的是img和p标记。

兼容性


(2)常用兼容性调试技巧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,719评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,337评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,887评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,488评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,313评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,284评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,672评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,346评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,644评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,700评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,457评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,316评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,706评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,261评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,648评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,859评论 2 335

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,709评论 1 92
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,797评论 0 6
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,600评论 0 30
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,008评论 0 1
  • 这两天我正在对人际关系有困惑,今天逻辑思维就推出了如何构建良性人际关系的行动清单,对我来说非常有用,学习后自己更好...
    梅子Mey阅读 2,547评论 11 76