前端web开发系列 css入门

css概述

CSS:层叠样式表(Cascading Stytle Sheets),用来修饰(美化)HTML网页的一门技术。使用CSS来设置样式,可以将设置样式的CSS代码和展示数据的HTML代码进行分离。并且还可以实现代码的复用,增强网页的展示能力。


1.元素的类型划分

  • 块级元素:默认情况下独占一行的元素
    (h1,hr,p,ul,ol,table,form,div...)
  • 行内元素:默认情况下,多个元素可以显示在同一行
    (span,a,br,b,strong,img,del,u,input,select,textarea...)

2.引入css

  • 通过标签上的style属性引入CSS样式
<!-- 
    1.通过标签上的style属性给div设置样式
      边框:1px solid red 
      字体大小 40px
      背景颜色为 pink
 -->
<span style="border: 1px solid red;font-size: 40px;background-color: pink">span111</span>

这种方式可以快速为某些标签设置css样式。但这种方式设置样式不推荐大量使用,会造成页面结构的混乱,不利于后期的维护及扩展。
<html>

<span style="border: 1px solid red;font-size: 40px;background-color: pink">span111</span>
</html>

  • 通过head标签内部的style标签引入CSS样式
<!-- 
     2.通过style标签给span设置样式如下
     边框: 2px solid cyan
     字体大小: 35px
     字体加粗
-->
<style type="text/css">
            /* ****** CSS样式 ****** */
            span{
                border: 2px solid cyan;
                font-size: 35px;
                font-weight: bolder;
            }
</style>

这种方式是将所有的css代码集中在一个style标签内部统一进行管理,实现了将展示数据的HTML代码和设置样式的CSS代码进行了初步分离。

  • 通过链接引入外部的CSS文件来引入CSS样式
<!-- 
   3.通过link标签引入外部的css文件,样式如下:
     边框: 2px solid blue;
     字体大小: 30px;
     字体为黑体
 -->
 <link rel="stylesheet" type="text/css" href="css/demo.css">

这种方式是将所有的css代码放在一个独立的文件中进行统一管理,真正的实现了html代码和css代码的分离。

4.css选择器

所谓的选择器就是在HTML中帮助我们选择标签进行修饰的技术。

1.基本选择器

标签名(元素名)选择器:

  • 根据元素的名称来选择指定名称的元素进行样式的修饰.
  • 格式:元素名{css属性}
/* 1.标签名选择器 
将所有span标签的背景颜色设置为#DDA0DD, 设置字体大小为24px,字体加粗
*/
span{
     background-color: #DDA0DD;     
     font-size: 24px;
     font-weight: bold;
    }

class选择器

  • 通过标签上通用的属性class,可以为标签指定所属的类(组),所有class值相同的元素则为一组(类),可以通过class属性的值选择这一组的标签,为这一组的标签统一设置样式。
  • 格式:.类名{css属性...}
/* 2.类选择器
(1)将所有的span(但是不包括div和p标签下的span)的背景颜色设置为#8FBC8F, 字体颜色为绿色
(2)将div1下的span和内容为"span111"的span字体颜色设置blue, 背景颜色设置为#F0E68C
*/
.s1{
    background-color: #8FBC8F;          
    color: #F0E68C;
    }
.s2{
    background-color: #F0E68C;
    color: blue;
    }

id选择器

  • 通过标签上通用的属性id,可以为标签设置唯一的标识(ID的值在整个HTML中是独一无二的),可以通过id的值选中指定的元素.
  • 格式:#id值{css属性...}
/* 3.id选择器 
用id选择器将第一个p标签设置字体加粗,首行文本缩进20px.
*/
#p1{
    font-weight: bold;          
    text-indent: 20px;
    }
2.扩展选择器

后代选择器

  • 在父选择器选中元素的内部,选中指定的所有后代元素
  • 格式:父选择器 后代元素选择器{ css属性… }
/* 将div下所有的span标签的字体大小设置为22px, 背景颜色设置为#DDA0DD*/
#d1 span{/* 选中ID值为d1元素内所有span元素*/
    font-size: 22px;
    background-color: #DDA0DD;
}

子元素选择器

  • 在父选择器选中元素的内部,选中指定的所有子元素
  • 格式:父选择器>子元素选择器{ css属性… }
/* 将div下所有的span子元素标签的字体大小设置为16px, 背景颜色设置为#DEB887*/
#d1>span{/* 选中ID值为d1元素内所有span子元素*/
    font-size:16px;
    background-color: #DE8887;
}

分组选择器

  • 将多个选择器选中的元素合并在一起统一设置样式。
  • 格式:选择器1,选择器2, … 选择器n{ css属性… }
/* 将span1、span2和p标签下的span的背景颜色设置为 #F4A460*/
.c1,.c2,#p1 span{
    background-color: #F4A460;
}

属性选择器

  • 根据属性选中符合条件的元素来设置样式
  • 格式:选择器[属性条件..]{ css属性 }
/*(1)将所有有class属性的元素的边框设置为2px、实线、红色.
  (2)将所有的type="text"的<input>标签的背景颜色设置为red, 设置字体首行缩进10px*/
*[class]{
    border: 2px solid red;
}  
input[type='text']{
    background-color: red;
    text-indent: 10px;
}

相邻兄弟选择器

  • 相邻兄弟指的是如果两个元素具有相同的父元素,并且紧挨着,这两个元素就是相邻兄弟元素。可以通过相邻兄弟选择器选中A元素后面的B元素。
  • 格式:大哥+小弟{ css属性… }
  • 大哥~小弟{css属性...}
/* 将id为p1元素后面相邻的p元素的背景颜色设置为 #DB7093*/
#p1+p{
    background-color:#DB7093;
}
/*选中id为div1后面所有的span元素*/
#div1~span{
}

伪元素选择器

  • 根据元素的状态选中指定的元素。
/*(1)当鼠标移入div下的a标签上时, 为其设置如下状态: 字体为blue, 字体大小为28px. 边框: 1px solid red, 并且文本内容没有下划线.
  (2)给div下的第一个a元素设置背景颜色为 lightgreen.*/
div a:hover{
    color: blue;
    font-size: 28px;
    border: 1px solid red;
    text-decoration: none
}
div a:first-child{
    background: lightgreen;
}

5.盒子模型

所谓的盒子模型指的是,可以将HTML页面中所有的元素都看成一个一个的盒子(或者是框),盒子与盒子之间的距离,包括盒子的边框以及盒子边框和盒子内容的距离都可以使用相应属性来表示。


盒子模型.gif
margin(外边距)
  • 元素与元素之间的距离
  • 垂直外边距的合并现象: 如果两个元素在垂直方向的外边距相遇时, 将会有合并的现象, 合并后的结果是, 取两个外边距之中的较大者来作为两个元素的外边!
  • 如何让块级元素居中显示:
    margin: 0px auto;
border(边框)
padding(内边距)

元素的实际宽度=元素设置的宽度+元素的左右边框宽度+左右内边距+左右外边距

元素的实际高度=元素设置的高度+元素的上下边框宽度+上下内边距+上下外边距

6.常用css属性

  1. 置元素是否显示以及如何显示(元素的显示方式)
  2. 块级元素:display的值默认为block
    (1)

7.内容补充

颜色
  • 颜色名称, 比如: red, green, blue
  • rgb三基色, 比如: rgb(255, 0, 0) , rgb(0, 255, 0) , rgb(0, 0, 255)
  • XXXXXX, 比如: #FF0000, #00FF00, #0000FF

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

推荐阅读更多精彩内容