css基础一

css简介

什么是css

  • css是层叠样式表(Cascading Style Sheets)的简称。有时我们也会称之为CSS样式表或级联样式表
  • css也是一种标记语言

有什么用

  • CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。
  • CSS让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化 HTML , 让 HTML 更漂亮, 让页面布局更简单。
  • CSS 最大价值: 由 HTML 专注去做结构呈现,样式交给 CSS,即 结构 ( HTML ) 与样式( CSS ) 相分离

引入css(css三种引入方式)

行内样式表(行内式)

​ 行内样式表(内联样式表)是在元素标签内部的 style 属性中设定 CSS 样式。适合于修改简单样式.
​ 语法:

 <div style="color: red; font-size: 12px;">helloword</div>

​ 1.style 其实就是标签的属性
​ 在双引号中间,写法要符合 CSS 规范
​ 2.可以控制当前的标签设置样式
​ 3.由于书写繁琐,并且没有体现出结构与样式相分离的思想,所以不推荐大量使用,只有对当前元素添加简单样式的时候,可以考虑使用
​ 4.使用行内样式表设定 CSS,通常也被称为行内式引入

内部样式表(嵌入式)

​ 内部样式表(内嵌样式表)是写到html页面内部. 是将所有的 CSS 代码抽取出来,单独放到一个

 <style>
                div {
                color: red;
                font-size: 12px;
                }
 </style>

​ 1.

外部样式表(链接式)

​ 实际开发都是外部样式表. 适合于样式比较多的情况. 核心是:样式单独写到CSS 文件中,之后把CSS文件引入到 HTML 页面中使用.
​ 引入外部样式表分为两步:
1. 新建一个后缀名为 .css 的样式文件,把所有 CSS 代码都放入此文件中。
2. 在 HTML 页面中,使用 标签引入这个文件。
语法:

  <link rel="stylesheet"  href="css文件路径">

css选择器

  1. ID选择器
    #elem{} id=“elem”

     1. ID是唯一值,在一个页面中只能出现一次,出现多次是不符合规范的。
     2. 命名的规范,由字母、下划线、中划线、字母(并且第一个不能是数字)
     3. 驼峰写法 : searchButton (小驼峰)  SearchButton (大驼峰)  searchSmallButton
        短线写法:search-small-button
        下划线写法:search_small_button
    
  2. CLASS选择器
    .elem{} class=“elem”

     1. class选择器是可以复用的。
     2. 可以添加多个class样式。
     3. 多个样式的时候,样式的优先级根据CSS决定,而不是class属性中的顺序。
     4. 标签+类的写法
    
  3. 标签选择器(TAG选择器)
    div{}


    使用的场景:
    1. 去掉某些标签的默认样式时
    2. 复杂的选择器中,如 层次选择器

  4. 群组选择器(分组选择器)
    可以通过逗号的方式,给多个不同的选择器添加统一的CSS样式,来达到代码的复用。

 <style>
    div,
    p,
    ul>li{
        color: aqua;
    }
    </style>
  1. 通配选择器

     *{  } ->  div,ul,li,p,h1,h2....{}    
     注:尽量避免使用通配选择器,因为会给所有的标签添加样式,慎用。
     使用的场景:
         1. 去掉所有标签的默认样式时           
    
  2. 层次选择器

     后代  M N { }	  当前M的子孙后代
     父子  M > N { }  当前M的儿子
     兄弟  M ~ N { }  当前M下面的所有兄弟N标签
     相邻  M + N { }  当前M下面相邻的N标签
    
  3. 属性选择器

    M[attr] {}    
    = : 完全匹配
    *= : 部分匹配
    ^= : 起始匹配
    $= : 结束匹配
    [][][] : 组合匹配
    
  4. 伪类选择器
    M:伪类{}
    :link 访问前的样式 ( 只能添加给a标签 )
    :visited 访问后的样式 ( 只能添加给a标签 )
    :hover 鼠标移入时的样式 (可以添加给所有的标签)
    :active 鼠标按下时的样式 (可以添加给所有的标签)

     注:
         一般的网站都只设置  
             a{}   ( link visited active )    a:hover{}
    
     :after、:before    通过伪类的方式给元素添加一段文本内容,使用content属性
     :checked、:disabled 、:focus 都是针对表单元素的   
    
     结构性伪类选择器
         nth-of-type()   nth-child()
         角标是从1开始的,1表示第一项,2表示第二项 | n值 表示从0到无穷大
         first-of-type
         last-of-type
         only-of-type 
    
         nth-of-type()和nth-child()之间的区别
             type : 类型
             child : 孩子
    
  5. :focus 伪类选择器

定义:

​ :focus 伪类选择器用于选取获得焦点的表单元素。

​ 焦点就是光标,一般情况 类表单元素才能获取

css元素显示模式

1、什么是元素的显示模式

定义:

​ 元素显示模式就是元素(标签)以什么方式进行显示,比如

自己占一行,比如一行可以放多个

作用:

​ 网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。

2、元素显示模式的分类

2.1、块元素

常见的块元素

<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>

标签是最典型的块元素。

块级元素的特点

  • 比较霸道,自己独占一行。
  • 高度,宽度、外边距以及内边距都可以控制。
  • 宽度默认是容器(父级宽度)的100%。
  • 是一个容器及盒子,里面可以放行内或者块级元素。

注意:

​ 文字类的元素内不能放块级元素

<p> 标签主要用于存放文字,因此 <p> 里面不能放块级元素,特别是不能放<div> 
同理, <h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素

2.2、行内元素

常见的行内元素:

<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>

标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

行内元素的特点:

  • 相邻行内元素在一行上,一行可以显示多个。

  • 高、宽直接设置是无效的。

  • 默认宽度就是它本身内容的宽度。

  • 行内元素只能容纳文本或其他行内元素。

注意:
链接里面不能再放链接
特殊情况链接< a> 里面可以放块级元素,但是给 <a>转换一下块级模式最安全

2.3、行内块元素

常见的行内块标签

<img />、<input />、<td>

​ 它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。

行内块元素的特点

  • 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。
  • 一行可以显示多个(行内元素特点)。
  • 默认宽度就是它本身内容的宽度(行内元素特点)。
  • 高度,行高、外边距以及内边距都可以控制(块级元素特点)。

2.4、元素显示模式总结

​ 学习元素显示模式的主要目的就是分清它们各自的特点,当我们网页布局的时候,在合适的地方用合适的标签元素。

3、元素显示模式的转换

简单理解:

​ 一个模式的元素需要另外一种模式的特性
​ 比如想要增加链接 <a> 的触发范围。

转换方式

  • 转换为块元素:display:block;
  • 转换为行内元素:display:inline;
  • 转换为行内块:display: inline-block;

4、单行文字垂直居中的代码

解决方案:

​ 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

简单理解:

​ 行高的上空隙和下空隙把文字挤到中间了,

​ 如果行高小于盒子高度,文字会偏上,

​ 如果行高大于盒子高度,则文字偏下。

CSS继承

文字相关的样式可以被继承
布局相关的样式不能被继承 ( 默认是不能继承的,但是可以设置继承属性 inherit 值 )

CSS优先级

1. 相同样式优先级
    当设置相同样式时,后面的优先级较高,但不建议出现重复设置样式的情况。
2. 内部样式与外部样式
    内部样式与外部样式优先级相同,如果都设置了相同样式,那么后写的引入方式优先级高。
3. 单一样式优先级
    style行间 > id > class > tag > * > 继承

    注:style行间 权重 1000
        id       权重 100
        class    权重 10
        tag      权重 1
4. !important
    提升样式优先级,非规范方式,不建议使用。( 不能针对继承的属性进行优先级的提升 )
  
5. 标签+类与单类
    标签+类 > 单类 
	
6. 群组优先级
    群组选择器与单一选择器的优先级相同,靠后写的优先级高。

7. 层次优先级
    1. 权重比较
        ul li .box p input{}   1 + 1 + 10 + 1 + 1
        .hello span #elem{}    10 + 1 + 100

    2. 约分比较    
        ul li .box p input{}    li p input{}
        .hello span #elem{}      #elem{}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章