大前端基础

本文详细介绍了CSS中的复合选择器,特别是链接伪类如`:link`、`:visited`、`:hover`和`:active`的用法,展示了它们在不同链接状态和元素交互中的应用。同时,深入讲解了CSS盒模型,包括内容、内边距、边框和外边距的设置,以及如何利用边框创建三角形和梯形。此外,还探讨了CSS中隐藏和显示元素的方法,如`display`和`visibility`属性。
摘要由CSDN通过智能技术生成

 一、复合选择器

### 1、伪类链接选择器

用于添加特殊效果

- 语法

```

    选择器:伪类{ }

```

- 用于设置链接的不同状态

```css

    a:link{ 链接的默认样式 }

    a:visited{ 链接访问过后的样式 }

    a:hover{ 鼠标悬停的样式 }

    a:active{ 鼠标按下的样式 }

   

    a:link {

            color: tomato;

        }

        a:visited {

            color: yellow;

        }

        a:hover {

            color: purple;

        }

        a:active {

            color: greenyellow;

        }

```

> 四个伪类状态都有效:L-v-H-a

- :hover不仅可以表示链接的悬停,也可以用于其他标签中

```html

/* 鼠标悬停到.box1盒上,让其本身的背景颜色变为蓝色 */

    .box1:hover{

        background-color: lightblue;

    }

/* 鼠标悬停到.box2盒上,让p标签文字颜色变为红色 */

    .box2:hover p{

        color: red;

    }

/* 鼠标悬停到.box3上,让p标签和h3标签的文字颜色都变为blue */

    .box3:hover h3,

    .box3:hover p{

        color: red;

    }

   

    .box3  :hover{

        color: blue;

    }

```

### 2、相邻选择器

```html

兄弟之间的hover

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        * {

            margin: 0;

            padding: 0;

        }

        .box {

            width: 100px;

            height: 100px;

            background: tomato;

        }

        .con {

            width: 300px;

            height: 300px;

            height: 0;

            background: yellowgreen;

            transition: 2s;

        }

        .box:hover+.con {

            height: 300px;

            background-color: blue;

        }

    </style>

</head>

<body>

    <div class="box"></div>

    <div class="con"></div>

</body>

</html>

```

# 二、CSS 盒模型

## 概述

CSS 盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距、边框、填充、和实际内容。(即装东西的容器)

所有 HTML 标签可以看作盒子,在 CSS 中,"box model" 这一术语是用来设计和布局时使用的。

(即网页布局 就是利用 CSS 摆盒子)

![image-20210413093344913](C:/Users/Administrator/Desktop/web/系统班课程大纲/day04/笔记/image-20210413093344913.png)

![image-20210413093125084](C:/Users/Administrator/Desktop/web/系统班课程大纲/day04/笔记/image-20210413093125084.png)

## 1、内容 content

概述 :CSS通过为元素设置width和height属性值来规定元素的content内容区域的大小。

元素的内容及子元素默认从内容区域开始排列。

### 1.width:宽度

length:像素px,rem,em,cm等单位

auto:默认值,浏览器可以计算出内容的实际宽度

百分比%:定义基于包含块(父元素)的宽度百分比来计算宽度的

max-width:最大宽度

min-width:最小宽度

### 2.height:高度

length:像素px,rem,em等单位

auto:默认值,浏览器可以计算出内容的实际高度

百分比%:定义基于包含块(父元素)的高度百分比来计算高度的

max-height:最大高度

min-height:最小高度

## 2.内边距

padding

```html

      padding内填充

        元素边框和元素内容之间的距离

        取值

        - px

        - 百分比

        - 上下内填充和左右内填充百分数值是相对于其父元素的width属性计算的  

        - 不可使用负值

        单边填充:  

            padding-top: 50px;上内填充

            padding-left: 20px;左内填充

            padding-right: 10px;右内填充

            padding-bottom: 20px;下内填充

        复合写法:

        padding: 20px; 一个值  四个填充

        padding: 20px 40px; 两个值 上下填充 左右填充

        padding: 20px 40px 60px; 三个值 上填充 左右填充 下填充

        padding: 20px 40px 60px 80px; 上填充 右填充 下填充 左填充(顺时针方向)

   .box1 {

            width: 100px;

            height: 100px;

            background-color: yellow;

            padding-top: 50px;

            padding-left: 20px;

            padding-right: 10px;

            padding-bottom: 20px;

        }

        .box2 {

            width: 100px;

            height: 100px;

            background-color: tomato;

            padding: 20px 40px 60px 80px;

        }

```

## 3.边框

围绕着内容和内填充区域的线

```html

        1.border-width:边框的宽度

        单位:像素

        注意:只写一个border-width设置不上边框的宽的,得写上边框的线型

        2.border-style:边框的线型

          1.solid 单实线

          2.double 双实线

          3.dashed 条状虚线

          4.dotted 点状边框

          5.none  没有边框

        3.border-color:边框的颜色

          1.关键词

          2.十六进制色值

          3.rgb()

          4.rgba()

          默认边框的颜色为元素本身的前景色

          4.复合写法

          例子:

          border-color: pink; 一个值:四个边框

          border-color: pink gold; 两个值:上下边框  左右边框

          border-color: pink gold greenyellow; 三个值:上边框 左右边框  下边框

          border-color: pink gold greenyellow purple;上边框 右边框 下边框 左边框(顺时针方向)

          border-width和border-style同样效果

        5.单独设置

        例子:

         /* 上边框 */

        border-top-width: 50px;

        border-top-style: solid;

        border-top-color: yellow;

         /* 下边框 */

        border-bottom-width: 50px;

        border-bottom-style: dashed;

        border-bottom-color: brown;

        单边框复合写法:

        border-left: 50px solid cyan;

        边框的宽度 边框的线型 边框的颜色

        6.边框的复合写法

        border:边框的宽度 边框的线型 边框的颜色

        border: 100px solid purple;

        7.去掉边框

        border:0;

        border:none;

```

利用边框实现三角形

```html

 用边框实现三角形的规律:

 盒子大小宽高为0

 要那个三角形,他的对边为none,他相邻的边框的颜色为透明色,transparent

 /* 上三角形

       实现上边三角形,对边为none,也就是下边框为none,左右边框的颜色为透明色

       

         */

        .box1 {

            width: 0;

            height: 0;

            /* border: 100px solid tomato;

            border-bottom: none;

            border-left-color: transparent;

            border-right-color: transparent; */

            border-top: 100px solid tomato;

            border-left: 100px solid transparent;

            border-right: 100px solid transparent;

        }

```

利用边框实现梯形

```html

 /* 用边框实现梯形的规律

        盒子大小不能为零

         要那个梯形,他的对边为none,他相邻的边框的颜色为透明色,transparent */

        /* 上梯形

       

        实现上梯形,对边为none,也就是下边框为none,左右边框的颜色为透明色 */

        .box1 {

            width: 100px;

            height: 100px;

            /* background-color: brown; */

            /* border: 100px solid red;

            border-color: tomato purple blue olivedrab;

            border-bottom: none;

            border-left-color: transparent;

            border-right-color: transparent; */

            border-top: 100px solid tomato;

            border-left: 100px solid transparent;

            border-right: 100px solid transparent;


 

        }

        /* 左梯形

        实现左梯形,对边为none,也就是右边框为none,上下边框的颜色为透明色

         */

        .box2 {

            width: 100px;

            height: 100px;

            /* background-color: brown; */

            /* border: 100px solid red;

            border-color: tomato purple blue olivedrab;

            border-right: none;

            border-top-color: transparent;

            border-bottom-color: transparent; */

            border-left: 100px solid olivedrab;

            border-top: 100px solid transparent;

            border-bottom: 100px solid transparent;

        }

```

## 4.外边距

margin

```html

 外间距:margin

        盒外属性:两个盒子之间的距离

        取值

        - px

        - auto浏览器自动计算

        - 百分比

        - 允许使用负值

单边外间距:

        margin-top: 20px;上外间距

        margin-right: 40px;右外间距

        margin-bottom: 20px;下外间距

        margin-left: 20px;左外间距

        复合写法

        margin: 20px; 一个值  四个外间距

        margin: 20px 40px; 两个值 上下外间距 左右外间距

        margin: 20px 40px 60px; 三个值 上外间距 左右外间距 下外间距

        margin: 20px 40px 60px 80px; 上外间距 右外间距 下外间距 左外间距(顺时针方向)

盒子水平居中

margin: 0 auto; 需要与width属性配合使用才会有效——固定宽度且居中

```

### 1.外边距应用

- 外边距实现已知宽度的块级盒子居中

- 需要与width属性配合使用才会有效——固定宽度且居中

```css

.box{

   width:200px;

    /*

    margin-left:auto;

    margin-right:auto;

   */

   margin:0 auto;

}

```

# 四、CSS显示隐藏

### display:

- none:隐藏该元素并且该元素所占的空间也不存在了。

- block; 显示元素

### visibility:

- hidden 隐藏该元素但是该元素所占的内存空间还存在,即“隐身效果”。

- visible 显示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值