带你熟练掌握 css 基础

23 篇文章 0 订阅

Css 基础

文章目录

一、Css是什么

层叠样式表:同一个元素上可以应用多种样式。这些样式之间会产生叠加,从而实现页面变得更好看效果。

CSS 就是 “东方四大邪术” 之化妆术 .

东方四大邪术 :中国的ps,日本的化妆,泰国人妖,韩国整容

二、基本语法规则

选择器{
    N条声明
}

image-20220216104633661

1、style标签本身放在页面的哪里都可以,一般放在head标签中

2、选择器是针对那个标签元素设置样式—(找谁)

3、{ }里面的值进行躯体设定。

2.1 css的注释

/*这是注释*/

快捷键:ctrl+/

2.2 格式规范

1、css不区分大小写,一般都是小写

2、如果属性由多个单词构成,使用 - 来作为分割—— font-size(脊柱命名法)

3、冒号后面带空格

4、选择器和‘{’ 之间带空格

三、选择器的种类

1、基础选择器:单个选择器构成

标签选择器,类选择器,id选择器,通配符选择器

2、符合选择器:把多种基础选择器综合运用起来

后带选择器,子选择器,并集选择器,伪类选择器

四、基础选择器

4.1 标签选择器

能够吧一类标签全都给选出来

<style>
        /*选出所有p标签,进行设置*/
        p {
            color: blue;
            font-size: 30px;
        }
</style>
    <p>这是一段文字</p>
    <p>这是一段文字</p>
    <span>这是另一段文字</span> <br>
    <span>这是另一段文字</span>

image-20220216111539935

优点:能快速为同一类型的标签都选择出来

缺点:不能差异化选择

4.2类选择器 (常用选择器)

可以选中一类元素,也可以进行差异设置

<style>
        /*选出所有p标签,进行设置*/
        p {
            color: blue;
            font-size: 30px;
        }
        /* css 中的类需要前面价格 . 后面是类名,这样就创造了一个类 */
        .green {
            color: green;
        }
    </style>
    <p>这是一段文字</p>
    <!-- 在标签中通过class属性引入类名 -->
    <p class="green">这是一段文字</p>
    <span>这是另一段文字</span> <br>
    <span>这是另一段文字</span>

1、优点:

  • 差异化表示不同标签
  • 一个类名可以被多个标签引入
  • 一个标签也可以引入多个类名(同时也引用了多种样式)
<style>
        .red {
            background-color: red;
        }

        .box {
            /*设置范围,高度和宽度*/
            width: 200px;
            height: 150px;
        }

        .blue {
            background-color: blue;
        }
</style>
    <!--  一个类名可以被多个标签引入-->
    <!-- 一个标签也可以引入多个类名(同时也引用了多种样式) -->
    <div class="box red"></div>
    <div class="box blue"></div>
    <div class="box red"></div>

image-20220216114039121

2、类名的命名模式:

  • 不能带中文,纯数字,标签名
  • 类名长可以用脊柱命名法

4.3 id 选择器

和html中的id舒心相关联,由于html中的id是唯一的,通过id选择器那么也就只能选中一个元素。

/* # 号开头表示是id选择器*/
# id的值 {
    CSS的属性和值
}


<style>
        #one {
            color: red;
        }

        .green {
            color: green;
        }
        div {
            color: blue;
        }
</style>
<!-- 多种选择器进行设置一个元素,最后id选择器优先级最高 -->
<div id="one" class="green">这是一段文字</div>

image-20220216115419812

问题:如果多种选择器对同一个元素进行样式设置会发生什么??

答:这种属于优先级,经过操作,id的优先级最高,其次是类型选择器,最后是标签选择器。

4.4 通配符选择器

使用 * 的定义,选取所有的标签

* {
    /*css 的属性和值*/
}


* 的效果就是报页面上的所有标签元素都选中,不需要页面结构调用,通配符选择器,最常用的用法,就是用来清楚浏览器的默认样式。。

五、复合选择器

5.1 后代选择器

又叫包含选择器. 选择某个父元素中的某个子元素,也能选择孙子,还可以选择id选择器/类选择器。

元素1 元素2 {样式声明}
  • 元素 1 和 元素 2 要使用空格分割
  • 元素 1 是父级, 元素 2 是子级, 只选元素 2 , 不影响元素 1

示例:

<style>
        ol li {
            color:red;
        }
</style>

    <ul>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
    </ul>

    <ol>
        <li>这一是一段文字</li>
        <li>这一是一段文字</li>
        <li>这一是一段文字</li>
    </ol>

image-20220217104614945

  • 元素2位孙子,还可以选择id选择器/类选择器。

    <ul>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
    </ul>
    
    <ol class="one">
        <li>这一是一段文字</li>
        <li>这一是一段文字</li>
        <li>
            <a href="#">这一是一段文字</a>
        </li>
    </ol>
    

image-20220217105426543

5.2 子选择器

只能选择子标签

元素1>元素2 { 样式声明 }
  • 只能选择儿子,不能选择孙子
  • 使用大于分割

示例:

<style>
        .one > a {
            color:red;
        }
</style>
     <ul>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
        <li>这是一段文字</li>
    </ul>

    <ol class="one">
        <li>这一是一段文字</li>
        <li>这一是一段文字</li>
        <li>
            <a href="#">这一是一段文字</a>
        </li>
    </ol>

image-20220217110247801

这里并不会生效,class类的子标签是 li 直接跳过儿子是不行的!!

5.3 并集选择器

用于选择多组标签. (集体声明)

元素1, 元素2 { 样式声明 }
  • 并集选择器建议竖着写. 每个选择器占一行. (最后一个选择器不能加逗号)

  • 中间是通过逗号隔开

  • 任何基础选择器都可以使用并集选择器

  • 表示同时选中元素 1 和 元素 2

    <h2>橙子</h2>
    <div>苹果</div>
    <ul>
        <li>香蕉</li>
    </ul>
    

image-20220217111311398

5.4 伪类选择器

通常使用链接,或者按钮

a:link 未访问过的链接
a:visited 访问之后的情况
a:hover 鼠标悬停
a:active 鼠标按下未放


<style>
        ab:link {
            color: black;
        }
        ab:visited {
            color:green;
        }
        ab:hover {
            color:aquamarine;
        }
        ab:active {
            color:blue;
        }
</style>

    <ab href="#">这是一个链接</a>

链接颜色

六、字体属性

  • font-family (字体类型)

    <div class="one">微软雅黑</div>
    

1、设置的字体必须是电脑上面有的

  • font-size (字体大小)

    <div class="one">字体粗细设置</div>
    

注意:字体数字没有单位,设置的值是固定选项 100-900 而且是整数,不能设置为750.

  • font-style (字体的倾斜)

    <div class="one">字体倾斜设置</div>
    

七、文本属性

  • 设置文本颜色

color属性来设置颜色;

color属性的值,可以使用一些表示颜色的单词来说进行设置,

世界上的颜色一共有多少种???用这些单词能否把所有的颜色都罗列出来?

答:颜色在世界上有无数种

那么计算机是怎么表示颜色的尼?

答:计算机是通过RGB的方式来表示颜色的;

三原色,R红,G绿,B蓝(色光三原色)

色深是表示一个颜色,使用几个bit位表示??

答:典型的实现是使用8个bit为表示

综上所述:RGB三个颜色就是3个字节。

在css中设置颜色,就是通过RGB的方式来设置的,每个分量按照一个字节(8位色深)来设置。


表示方式有3种:

color: red;
color: #ff0000;
color: rgb(255, 0, 0);


1 、直接写单词
2 、采用十六进制方式
3 、RGB方式

image-20220217194900551

  • 文本对齐

    text-align: [值];

    1、left,左对齐
    2、center:居中对齐
    3、right:右对齐

    <div class="one">下划线</div>
    <div class="two">上划线</div>
    <div class="three">删除线</div>
    <a href="#" class="four">只是一个链接</a>
    

image-20220217200841850

  • 文本缩进

控制段落的首行缩进

text-indent:[值];


1、使用px作为单位不合适;
2、先使用em为单位,1 个 em 就是当前元素的文字大小。
3、缩进可以是负数,表示向左缩进(就会导致文字不见)


<style>
        .one {
            text-indent: 2em;
        }
        .two {
            text-indent: -2em;
        }
      
</style>

    <div class="one">文本缩进</div> 
    <div class="two">反向缩进</div>

image-20220217201709151

  • 行高

上下文本行之间的基线距离

行高=文字自身高度 + 行间距

line-height: [值];


<style>
        p {            
            line-height: 50px;
        }
    </style>
	<p>
        ..................
    </p>

八、背景属性

  • 背景颜色

    background-color: [指定颜色]

    <div class="one">红色背景</div>
    <div class="two">蓝色背景</div>
    

image-20220217204113921

  • 背景图片

    background-image: url(图片路径);

    <div class="one">帅哥</div>
    

但是这里面的背景图是会一直平铺将整个页面铺满,不想铺满就设计到下面的背景平铺

  • 背景平铺

    background-repeat: [平铺方式]

    1、on-repeat: 不平铺
    2、repeat-x:水平平铺
    3、repeat-y:垂直平铺

  • 背景位置

    background-position: x y;

    1、可以写数字,单位px
    2、可以写单词(常用):background-position:center bottom

计算机的位置坐标是左手系的方式,原点在左上角

image-20220217213412765

  • 背景尺寸

    background-size:

    1、可以写数字,单位px
    2、可以写单词(常用):

    background-size: contain
    background-size:cover

    /这两者都是图片覆盖全部区域/

九、圆角矩形

基本用法:

border-radius: length;


1、length值值得是矩形内切圆半径,数值越小,就越不圆,数值打,就越圆


<style>
        div {
            width: 200px;
            height: 100px;
            background-color: red;
            border-radius: 50px;
        }
    </style>

    <div></div>

image-20220218092734240

一般来讲四个脚的幅度可以单独设置的,叫做复合写法。

image-20220218092931080

  • 生成圆形

    想生成圆形,就是把矩形设置成正方形,就是width和height分别设置为200px就是正方形,最后border-radius设置成50%或者100px就行了

    div {
                width: 200px;
                height: 200px;
                background-color: red;
                border-radius: 100px;
            }
        </style>
    
        <div></div>
    
  • 生成圆角矩形

让 border-radius 的值为矩形高度的一半即可

div {
            width: 300px;
            height: 200px;
            background-color: red;
            border-radius: 100px;
        }
    </style>

    <div></div>

十、元素的显示模式

块级元素:独占一行

行内元素:不独占一行

这两个都属于元素的显示模式

可以使用display属性来设置元素的显示模式

  • display:block 块级元素
  • display:inline 行内元素
  • disply:none 隐藏元素

div属于块级元素,块级元素默认宽度和父元素一样宽

<style>
        .parent {
            height: 500px;
            width: 500px;
            background-color: goldenrod;
        }
        .child {
            
            height: 200px;
            background-color: blue;
        }

    </style>

    <div class="parent">父元素
        <div class="child">child1</div>
        <div class="child">child2</div>
    </div>

image-20220218100000874

div 是块级元素(display:block):

1、块级元素默认独占一行;

2、块级元素宽度默认和父元素一样宽!!!

  • 行内元素

使用display:inline 就能把元素设置成行内元素

1、不独占一行

2、设置的宽度和个高度都失效了,行内元素的尺寸就是包裹里面的文字内容。

image-20220218100629081

  • 隐藏元素

    dispaly:none

这个是将元素隐藏起来,但是元素在html中的代码还是存在,只是在页面不显示了,

十一、盒模型

每一个 HTML 元素就相当于是一个矩形的 "盒子

这个盒子由这几个部分构成

image-20220218105858134

  • 边框

border 属性来进行设置 (他是一个复合属性)

<style>
        div {
            height: 200px;
            width: 200px;
            background-color: goldenrod;
            border: 10px solid red
        }
</style>
    <div>text</div>

image-20220218110315277

  • 边框会撑大盒子

我们所设置的width和height是不包含边框的部分。有了边框那么整个元素就会被撑大,这种设定是不方便的,进行页面布局的时候是非常复杂的,更希望的是,设置的尺寸能够包含边框。

box-sizeing:border-box;


1、这个属性就是解决上面的问题,是边框不再撑大盒子。
2、默认值是content-box,这个时候就是尺寸不包含边框。
3、一般这个属性设置在*{}通配符中,选取所有标签。


* {
            box-sizing: border-box;
  }
  • 内边框

padding 设置内容和边框之间的距离.

基础写法:

1、padding-top
2、padding-bottom
3、padding-left
4、padding-right

复合写法:

padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)

注意:内边框也是会撑大盒子的,设置了box-sizing:border-box就不会撑大盒子了

  • 外边距

与内边框的格式写法都是一样的,外边距是控制盒子和盒子之间的距离

基础写法:

1、margin-top
2、margin-bottom
3、margin-left
4、margin-right

复合写法:

margin: 10px 20px 30px 40px;
  • 块级元素水平居中

    margin: 0 auto

image-20220219112128754

  • 去除浏览器默认样式

    浏览器会给元素加上默认样式,就比如内外边框,为了保证浏览器上的样式都是统一的的样式显示,往往我们会去除浏览器默认样式.
    使用通配符选择器即可完成这件事情

    • {
      marign: 0;
      padding: 0;
      }

十二、弹性布局

  • dispaly:flex;

父元素设置这个属性,此时父元素里面的元素都要遵守 弹性布局的规则,

行内元素的时候是忽略掉高度和宽度的,是以文字包裹的范围。

1、用dispaly:flex这个属性,里面的子元素就不在按照块级/行内元素的规则排列了。

2、在用flex中的子元素去掉高度,此时这个元素默认和复原素一样高。

没有添加flex属性:

image-20220219114714794

添加了flex属性

image-20220219114747855

添加了flex属性但是没设高度:

image-20220219114826886

代码:

<div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
</div>
    <style>
        div {
            width: 800px;
            height: 150px;
            background-color: blue;
            display: flex;
        }
        div>span {
            background-color: gold;
            width: 100px;
            /* height: 100px; */
        }
     </style>
  • justify-content (主轴方向)

在flex布局中,justifu-content属性来设置水平方向的排列方式(父元素中设置)。

justify-content: center; /*水平居中*/
justify-content: end; /*父元素的最右边*/
justify-content: space-around; /*水平隔开*/
justify-content: space-between;/*先两边元素贴近边缘, 再平分剩余空间*/

image-20220219120025451

<div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    <style>
        div {
            width: 800px;
            height: 150px;
            background-color: blue;
            display: flex;
            justify-content: space-around;
            /*justify-content: space-between;*/
            /* justify-content: center; */
            /* justify-content: end; */
        }
        div>span {
            background-color: gold;
            width: 100px;
            /* height: 100px; */
        }
     </style>
  • alingn-items(侧轴方向)

设置侧轴上的元素排列方式

他的基本用法也是和上面的justify-content差不多。

image-20220219120634112

演示下重置居中:

image-20220219121214371

<div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    <style>
        div {
            width: 800px;
            height: 150px;
            background-color: blue;
            display: flex;
            justify-content: space-between;
            align-items: center;/*是元素水平居中*/
            
        }
        div>span {
            background-color: gold;
            width: 100px;
            height: 50px;

        }
     </style>

剩下的方法也是类似的做法,不载赘述


文章到这里基本上就结束了,css比较杂多,记忆的部分也多,这篇文章基本上吧css的基础都写的差不多了,适合刚开始css小白看的基础,想深入还有很多要学,也只能自己找文章看了,推荐一个css权威文档css参考手册这个文档对你了解css会有恒大的帮助。铁汁们,觉得笔者写的不错的可以点个赞哟???,收藏关注呗,你们支持就是我写博客最大的动力!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值