我的前端学习之路-----HTML+css(二)

css的个人学习随手笔记

网页实际上是一个多层的结构,通过css可以分别为网页的每一层来设置样式,而最终我们能看到的知识网页的最上边一层

css编写的位置

 第一种方式:内联样式,行内样式

                       在标签内部通过style属性来设置元素的样式

<p style="color:red;  font-size: small;"> css学习随手笔记</p>

                        只在本行内样式设定,如若有下一行需要重新设置css样式

第二种方式:内部样式表

                        将样式编写到head中的style标签里

                        <style>

                          标签选择器(详情见下面)

                        </style>

  第三种方式:外部样式表(开发常用)

                        可以将css样式编写到一个外部的css文件中

<link rel="stylesheet" type="text/css" href=" xxx.css" />

          外部样式表需要通过link标签进行引用,只要想使用这些样式的网页都快可以对其进行引用,指样式可以在不同页面之间进行复用

           将样式编写到外部的css文件中,可以使用到浏览器的缓存机制,从而加快网页的加载速度,提高用户的体验

css基本语法

           css的基本语法:选择器  声明块

                    选择器:通过选择器可以选中页面的指定元素

                                   比如p标签的作用就是选中页面中所有的p元素

                    声明块:通过声明块来指定要为元素设置的样式

                                  声明块由一个一个的声明组成

                                   声明块由一个名值对结构

                                          一个样式名对应一个样式值,名和值之间以 :连接,以;结尾

CSS选择器

        基础选择器

基础选择器
选择器作用用法
标签选择器可以选出所有相同的标签,如pp{color:red;}
类选择器可以选出一个或多个标签使用非常多 

.nav{ color : red;}

( nav:类名)

id选择器一次只能选择一个标签

#eg{ color:red;}

(eg : id名)

通配符选择器全局声明*{ color : red ; }

        复合选择器

复合选择器
选择器作用特征用法
后代选择器用于选择元素后代,使用较多选择所有的子孙后代

间隔符号为空格

nav  p{color : red};

子代选择器选择最近一级元素只选择亲儿子

符号为>

nav>p{color : red};

交集选择器选中同时复合多个条件的元素选择器1选择器2选择器n{}
并集选择器同时选择多个选择器对应的元素选择器1,选择器2,选择器n{}
链接伪类选择器给链接更改状态重点记住a{ }

选择器的权重

                 样式的冲突:当我们选择不同的选择器,选中相同的元素,并且为相同的样式设置不同的值时, 此时就发生了样式的冲突

               -发生样式冲突时,应用哪个样式由选择器的权重(优先级)决定

选择器的权重

        内联样式                1,0,0,0

         id选择器                0,1,0,0

         类和伪类选择器     0,0,1,0

         元素选择器            0,0,0,1

        通配选择器             0,0,0,0

        继承的样式             没有优先级

比较优先级时,需要将所有的选择器优先级进行相加计算,最后优先级越高,则越优先显示(分组选择器时单独计算的)

选择器的累加不会超过其最大的数量级,类选择器再高也不会超过id选择器;

如果优先级计算后相同,此时优先使用靠下的样式。

可以在某一样式的后边加上!important,则此时该样式会获得最高的优先级,甚至超过内联样式 。但是,要注意在开发过程中要慎用!!!

链接样式

  • a:link   正常,未访问过的链接
  • a:visited  用户已访问过的链接
  • a:hover 当鼠标悬停在链接上时
  • a:active 链接被点击的那一刻

伪元素

伪元素:表示页面中一些特殊的并不真实的元素(特殊的位置)

                伪元素使用::开头

::first-letter 表示第一个字母

::first-line 表示第一行

::selection 表示选中的内容

::before 元素的开始

::after 元素的最后

           - before和after必须结合content属性来使用

div::before{
    content:'abc';
    color:red;
}

继承

样式的继承,我们为一个元素设置的样式同时也会应用到它的后代元素上

继承是发生在祖先后代之间的

继承的设计是为了方便我们的开发,利用继承我们可以将一些通用的样式统一设置到共同的祖先元素上,这样只需设置一次即可让所有的元素都具有该样式

注意:并不是所有的样式都会被继承。比如背景相关的,布局相关等的这些样式都不会被继承。

像素和百分比

长度单位:像素

                        -屏幕(显示器)实际上是由一个一个的小点点构成的

                        -不同屏幕的像素大小是不同的,像素越小的屏幕显示的效果越清晰

                        -所以同样的200px在不同的设备下显示效果不一样  

                   百分比

                        -也可以将属性值设置为相对于其父元素属性的百分比

                        -设置百分比可以使子元素跟随父元素改变而改变 

em和rem

                em

                        -em是相对于元素的字体大小来计算的

                        -1em = 1font-size

                        -em是会根据字体大小的改变而改变

                rem

                        -rem是相对于根元素的字体大小来计算的

定位机制

CSS中存在三种定位机制

  • 文档流
  • 浮动定位
  • 层定位

文档流

        -是默认的一种情况,不需要额外的设置

文档流定位的元素分类
blockinlineinline-block

        -元素类型转换:display属性

        block元素特点:1.独占一行

                                   2.元素的height、width、margin、padding都可设置

                 常见的block元素:<div>、<p>、<h1>~<h6>、<ol>、<ul>、<table>、<form>

a{
    display:block
}

               inline元素a转换为block元素,从而使a元素具有块状元素的特点

          inlink 元素特点:1.不单独占用一行

                                       2.width、height不可设置

                                       3.width就是它包含的文字或图片的宽度,不可改变

                     常见的inlink元素:<span>、<a>

                     显示为inlink元素:display:inlink

         inlink-block元素

                      -就是同时具备inlink元素、block元素的特点

                 特点:1.元素不单独占用一行

                            2.元素的height、width、margin、padding都可设置

                  常见的inlink-block元素:<img>

                  显示为inlink-block元素:display:inlink-block

浮动定位

        float属性:left、right

                div实现横向多列布局

                float属性:left — 左浮动

                                 right — 右浮动

                                 none — 不浮动

        clear属性:left、right、both

                both,清除左右两边的浮动

                left 和 right 只能清除一个方向的浮动

                none是默认值,只在需要移除已指定的清除值时用到

层定位

        概述: position属性:1.fixed、2.relative、3.absolute

                    left属性

                    right属性

                    top属性

                    bottom属性

                    z-index属性

position属性
fixed

固定定位

relative相对定位
absolute绝对定位

position属性
static默认值

没有定位,元素出现在正常的流中

top,bottom,left,right、z-index无效

position:static

fixed

固定定位

相对于浏览器窗口进行定位

top,bottom,left,right、z-index有效

position:fix

不会随浏览器窗口的滚动条滚动而变化

总在视线里的元素

relative相对定位

相对于其直接父元素进行定位

top,bottom,left,right、z-index有效

position:relative

定位为relative的元素脱离正常的文档流中,但其在文档流中的原位置依然存在

relative定位的层总是相对于其直接父元素,无论其父元素是什么定位方式

absolute绝对定位

相对于static定位以外的第一个父元素进行定位

top,bottom,left,right、z-index有效

position:absolute

定位为absolute的层脱离正常文本流,但与relative的区别:其在正常流中的原位置不再存在

对于absolute定位的层总是相对于其最近的定义为absolute或relative的父层,而这个父层并不一定是其直接父层

对于absolute定位的层,如果其父层中都未定义absolute和relative,则其将对相对body进行定位

相对定位vs绝对定位
相对定位绝对定位
position取值relativeabsolute
文档流中原位置保留不保留
定位参照物直接父元素非static的父元素

盒子模型

css将页面中的所有元素都设置为了一个矩形的盒子

将元素设置为矩形的盒子后,对页面的布局就变成将不同的盒子摆放到不同的位置

 

 一个盒子的实际宽度、高度:content+padding+border+margin

当内容溢出盒子框时,overflow属性取值

overflow属性
hidden超出部分不可见
scroll显示滚动条
auto如有超出部分,显示滚动条

边框(border)

 border属性: width、style、color(凡是设定border三个属性就必须全写)

边框的宽度border-widthpx、thin(细边框)、medium(默认、中等边框)、thick(粗边框)、inherit(从父元素继承边框宽度)
边框的样式border-styledashed(虚线)、solid(实线)、double(双线)
边框的颜色border-color颜色

border-width可以用来指定四个方向的边框宽度

值的情况  :    四个值:上、右、下、左

                      三个值:上、左右、下

                      两个值: 上下、左右

内边距(padding)

对浏览器默认的设置清零

*{

        margin:0;

        padding:0;

注意:属性的取值只有为0时才可以省掉单位,其他情况下不可以

内边距的设置会影响到盒子的大小

外边距(margin)

外边距不会影响盒子可见框的大小,但是外边距会影响盒子的位置

margin-top  上外边距

                设置正值,元素会向下移动

                设置负值,元素会向上移动

margin-right  右外边距

                设置正值,元素会向右移动

margin-bottom下外边距

                设置正值,其下边的元素会向下移动

margin-left  左外边距

                设置正值,元素会向右移动

                设置负值,元素会向左移动

元素在页面中是按照自左向右的顺序排列的,所以默认情况下如果我们设置的左和上外边距则会移动元素自身,而设置下和右外边距会移动其他元素

margin属性水平居中
图片、文字水平居中text-align:center;
div水平居中margin:0 auto;(浏览器自动计算)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值