CSS3 笔记(自用)

1.在html中使用css方式

1.1行内样式

将css规则写到元素的style属性中

<p style="color:red;">hello</p>

1.2内联样式

将样式写到style标签中,通过选择器选中元素,然后为这些元素指定规则

<head>
<meta charset="utf-8">
<style>
p{
    color:blue;
    font-size:20px;
}
</style>
</head>

1.3外部导入

将样式集中到一个css文件中,通过link标签将这个css加载到html中

<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="style.css">
    </head>
</html>

2.css3选择器

2.1核心选择器

  • 标签选择器

        又叫元素选择器,是最基本的选择器,使用元素名称直接选中元素

p{}  /*选中所有p标签*/
  • id选择器

        id值不能重复,在选择文档中唯一元素时使用比较好

#one{}  /*选中id=one的元素*/
  • class选择器

        类名不允许有空格,与元素中class属性值保持一致,一个元素可以有多个class的值,每个值通过空格分隔开,类名相同的元素属于同一类元素

.box{}   /*选中class为box的元素*/
  • 并且选择器

        多个选择器配合使用,达到精确选择的目的

ul.nav{}   /*选中class为nav的ul元素*/
  • 和选择器

        多个选择器组合使用,使用“,”分割

ul,nav{}   /*选中ul元素和class为nav的元素/
  • 普通选择器

        表示选择所有元素

*{}   /*表示选择所有元素*/

2.2层次选择器

  • 子选择器

        使用“>”隔开两个选择器,前一个选择器选择到父元素,后一个选择器对子元素进行过滤

ul.menu>li{}   /*选中class为menu的ul标签下的所有li标签*/
  • 后代选择器

        使用空格“  ”隔开两个选择器,前一个选择器选择到父元素,后一个选择器对后代元素进行过滤

ul.menu li{}     /*选中class为menu的ul标签下所有后代li元素*/
  • 兄弟选择器

        使用“+”隔开两个选择器,表示下一个兄弟,使用“~”隔开两个选择器,表示之后的所有兄弟

ul.menu>li:nth-child(2)+li{}  /*class为menu的ul的第二个子元素li的下一个兄弟*/
ul.menu>li:nth-child(2)~li{}  /*class为menu的ul的第二个子元素li的后边所有兄弟*/

2.3属性过滤器

input[name]{}  /*选择具有name属性的input元素*/
input[name=username]{}    /*选择具有name=username的input元素*/
input[name*=username]{}    /*选择具有name包含username的input元素*/
input[name^=u]{}     /*选择具有name属性以u为开头的input元素*/
input[name$=u]{}     /*选择具有name以u结尾的input元素*/

2.4伪类选择器

:first-child            选中父元素的第一个孩子元素

:last-child            选中父元素的最后一个孩子元素

:nth-child(n)        选中父元素的第n个孩子元素

ul>li:nth-child(2){}    /*选择ul里的第2个li*/

:visited                已访问过的状态,常用于a标签

:hover                 鼠标悬停的状态,常用于a标签,其他标签也可用

:active                 激活的状态,常用于a标签,其他标签也可用

2.5伪元素选择器

::after           在选中元素内部所有孩子元素后面追加一个子元素

ul::afer{}    /*在ul里的最后一个li后面添加*/

::before        在选中元素内部所有孩子元素前面插入一个子元素

3.字体样式

3.1.color

color为字体指定颜色,颜色的取值可以为关键字、6位16进制数值、RGB、RGBA等

p{
    color:yellow;
    color: #00ff00;
    color:rgb(12,35, 64);
    color:rgba(65, 25, 64, 0.1);
}

3.2.font-family

为文字指定特殊的字体,浏览器只会使用浏览器可以访问到的字体,给定一个有先后顺序的、由字体名或字体族名组成的列表来为选定的元素设置字体,属性用逗号隔开,浏览器会选择第一个该计算机上有安装的字体。

font-family:"Microsoft YaHei","微软雅黑";

3.3.font-size

font-size为字体指定字体大小,取值单位有:

px(像素)、em(相对于当前对象内文本的字体尺寸,如果当前对象内文本的字体尺寸未被设置,则相对于浏览器的默认字体尺寸)、rem(相对HTML根元素)

font-size:12px;

3.4.font-style

用于设置或取消斜体文本,取值有:

normal(正常)、italic(斜体)

3.5.font-weight

为字体设置粗细程度,取值有:

lighter、normal、bold、bolder  或者用数值表示(100-900)

3.6.line-height

为字体设置行高,用于文本的垂直居中

line-height:2em;

3.7.font

用来作为font-style、font-weight、font-size、line-height 和 font-family属性的简写

font:normal bold 12px/1 "微软雅黑";

4.文本样式

4.1.text-aligh

定义行内元素相对于它的块父元素对齐方式,取值有:

left、right、center

4.2.text-indent

定义一个块元素首行文本之前的缩进量

text-indent:2em;

4.3.text-transform

使文本显示为大写或小写,取值有:

none(默认)、capitalize(文本中的每个单词以大写字母开头)、uppercase(定义仅有大写字母)、lowercase(定义无大写字母,仅有小写字母)、inherit(从父元素那里继承)

4.4.text-decoration

用于设置文本的修饰线外观的,是text-decoration-line,text-decoration-color,text-decoration-style的速写形式

text-decoration: underline wavy red;       /*红色波浪形下划线*/

4.5.text-shadow

设置或取消文本阴影

text-shadow:3px 3px 1px gray;  /*水平方向 垂直方向 距离 颜色*/

4.6.text-overflow

确定如何向用户发出未显示的溢出内容信号

text-overflow:clip;   /*默认值,在内容区域的极限处截断文本*/
text-overflow:ellipses;   /*用省略号表示被截断文本*/

4.7.white-space

设置如何处理元素内的空白。

white-space:normal;    /*默认,空白会被浏览器忽略*/
white-space:nowrap;    /*文本不会换行,文本会在在同一行上继续*/

5.列表样式

一般我们将列表样式设置为none

list-style:none;

6.其他样式

6.1.cursor

调整光标悬浮在链接上的时候光标的形状

cursor:pointer;   /*光标为手指形状*/
cursor:crosshair;    /*光标为十字形状*/

6.2.visibility

设置内容显示与隐藏,占据屏幕空间

visibility:visible;     /*默认,可见的*/
visibility:hidden;     /*隐藏*/

6.3.opacity

设置透明度,0-1之间取值,取值为0时隐藏,占据屏幕空间

opacity:1;

6.4.overflow

盒子内部内容溢出部分处理

overflow:visible;    /*默认,内容不会被修剪,会呈现在元素框之外*/
overflow:hidden;    /*内容会被修剪,并且其余内容不可见*/
overflow:scroll;    /* 浏览器显示滚动条以便查看其余内容*/
overflow:auto;    /*由浏览器决定,如果内容被修剪,就会显示滚动条*/

7.盒子模型

box-sizing属性可以改变盒子模型,取值有:

  • content-box(内容盒子模型 默认)

        width只表示盒子内容所占宽度,height仅表示盒子内容所占高度

        盒子实际所占宽度=width+2borderWidth+2paddingWidth

  • border-box(边框盒子模型)

        width表示盒子实际所占宽度

        width=内容宽度+2borderWidth+2paddingWidth

7.1背景色

  • background-color         设定盒子背景色
  • background-image        设定盒子背景图片        取值有url(图片地址)
  • background-size        设定背景图片大小        取值有:

        cover——把背景图片扩展至足够大,以使背景图片完全覆盖背景区域

        contain——把图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

        百分比——把图像进行缩放

        取值——表示把图片设置为固定大小

  • background-repeat        设定背景图片重复方式         取值有:

        repeat        repeat-x        repeat-y        no-repeat

  • background-origin        设定背景铺设的起点        取值有:

        border-box        padding-box        content-box

  • background-clip        用于设定背景裁切的方式        取值有:

        border-box        padding-box        content-box

  • background-position        用于设置背景图片的位置        取值有:

        center        left        坐标

8.默认文档流

默认文档流就是对页面布局不加任何修饰,采用块元素自动的布局方式,其特点如下

  1. 元素在页面中的显示顺序与元素在代码中出现的顺序是一致的
  2. 块级元素独占一行空间,宽度默认为父级的百分之百,高度由其内容高度所决定
  3. 行内元素与其他元素共享一行空间,宽高由其内容所决定

9.浮动布局

       浮动布局主要用法是为了让块级元素在一行中显示,或者让文字在图片的周围显示。float属性取值为:left、right、none、inherit(从父元素继承 float 属性的值)

        如果为一个元素添加了float:left规则之后,该元素就变成了浮动元素,可以是块元素脱离当前的文档流

浮动元素的特点:

  • 不再独占一行空间,宽度默认由内容决定,可以为其指定宽度
  • 不占据屏幕中原有的位置,之后的非浮动兄弟元素会抢占它原有的位置
  • 兄弟浮动元素会在一行中显示,如果一行放不下,会自动换行

如果一个父元素中所以子元素都浮动,那么父元素高度为0,因为浮动元素都脱离了文档流,失去对父元素的支撑。通常情况下,需要通过clear属性清理浮动,取值为left、right、both

ul::after{
    content:"";
    display:block;
    clear:both;
}     /*清理浮动*/

10.伸缩盒布局

10.1概念

伸缩盒容器        div.container、ul.container

伸缩盒元素        div、li

主轴        默认主轴x轴,伸缩盒中,伸缩盒元素沿着主轴来进行排列

交叉轴        与主轴垂直的轴

10.2规则

伸缩盒容器:

  • display:flex;       

        强制让子元素沿着主轴方向显示,并且子元素不会脱离文档流,交叉轴上元素高度如果没有指定,应该与父元素保持一致

  • flex-direction:row;

        定义主轴方向,row表示主轴是x轴,column表示主轴是y轴

  • align-items:stretch;     

         定义伸缩盒元素在交叉轴上的对齐方式 

        取值有:stretch(拉伸满)、center(中间)、flex-start(开头)、flex-end(结尾)等

  • justify-content:space-around;

        定义伸缩盒元素在主轴上的对齐方式

        取值有:center(中间)、flex-start(开头)、flex-end(结尾)、space-between(中间间隔相等)、space-around(周围间隔相等)等

伸缩盒元素:

flex-basic:200px;           主轴上的基础长度(基本工资)

flex-grow:2;                   主轴上剩余空间分配的份数(分红)

flex-shrink:1;                  主轴上亏损空间的分摊份数

11.居中问题

文本在盒子中

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值