DAY46-前端入门-组合选择器、标签a_img_list、盒模型、伪类、盒模型布局

目录

  • 一、组合选择器

    • 群组选择器
    • 子代选择器
    • 后代选择器
    • 相邻选择器
    • 兄弟选择器
    • 交集选择器
    • 组合选择器的优先级
  • 二、属性选择器
  • 三、盒模型
    • 盒模型概念
    • 盒模型成员介绍
  • 四、边界圆角
    • 单角设置
    • 整体赋值
  • 五、常用标签
    • 超连接标签a
    • 图片标签img
    • 列表标签list
  • 六、伪类选择器
    • a标签的四大伪类
    • 内容伪类
    • 索引伪类
    • 取反伪类
  • 七、盒模型布局
    • 做页面必备reset操作
    • 盒模型布局基本介绍
    • display:显示方式
    • 兄弟坑
    • 父子坑
    • 解决方案

一、组合选择器

群组选择器

可以将任意多个选择器分组到一起,并用逗号分隔。

div,.s,section{
            color:red;
        }

子代选择器

如果只希望影响到某个标签下的第一级标签,可以用子代选择器。

x > y。只会影响到x标签下的y标签,不会影响到x标签下的z标签里的y标签。

div>strong{
    color:red;
}

后代选择器

又称包含选择器。只要是在这个标签里的某种标签都会被影响

x 空格 y。x标签下所有的y标签

div a {
    text-decoration: none;
}

相邻选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。

x + y。x标签左右的y标签

span+section{
            background-color:pink;
        }

兄弟选择器

x ~ y。x标签附近的所有的y标签。兄弟选择器包括相邻选择器。

span~section{
            background-color:brown;
        }

交集选择器

相交的部分就是要设置属性值的标签

xy。即有x又有y

i.s{
    color: yellow;
}
<i class=‘s‘>iiii</i>

组合选择器的优先级

同目录结构下

? 子代与后代优先级相投。相邻与兄弟优先级相同。

? 最终的样式采用逻辑后的样式根据选择器权值进行比较

不同目录结构下

? 根据选择器权值进行比较

? 权值为标签权重之和

? 权重: *:1

? div:10

? class:100

? id:1000

? !important:10000

? 权值比较时,关心的是值的大小,不关心位置和具体选择器名

? 权值相同时,靠位置决定

? id永远比class大,class永远比标签大

? 控制的是同一目标才具有可比性

二、属性选择器

? 属性选择器权重与class选择器一样

? 有属性class的所有标签

[class]{
            color: orange;
        }

? 有属性class且值为d2的所有标签

[class=‘d2‘]{
            color: pink;
        }

? div且class=‘d2‘,权重增加

div[class=‘d2‘]{
            color: blue;
        }

? 属性以什么开头:^=

[class^=‘he‘]{
            color: yellow;
        }

? 属性以什么结尾:$=

[class^=‘rd‘]{
            color: tan;
        }

? 属性模糊匹配:*=

[class^=‘llo‘]{
            color: cyan;
        }

三、盒模型

盒模型概念

  • 广义盒模型:文档中所有功能性及内容性标签,及文档中所有显示性标签
  • 侠义盒模型:文档中以块级形式存在的标签(块级标签拥有盒模型100%特性且最常用)
  • 盒模型组成:margin + border + padding + content

盒模型成员介绍

content

  • 通过设置width与height来规定content
  • 块级标签可以设置自身宽高,默认宽为父级宽(width=auto)、高为0,高度可以由内容决定
  • 内联标签不可以设置自身宽高,默认宽高均为0,宽高一定由内容决定

border

  • border(边框)由border-width(宽度)、border-color(颜色)、border-style(风格)三部分组成
  • border成员:border-left、border-right、border-top、border-bottom
  • border-width成员:border-left-width、border-right-width、border-top-width、border-bottom-width
  • border-color成员:border-left-color、border-right-color、border-top-color、border-bottom-color
  • border-style成员:border-left-style、border-right-style、border-top-style、border-bottom-style
风格 解释
solid 实线
dashed 虚线
dotted 点状线
double 双实线
groove 槽状线
ridge 脊线
inset 内嵌效果线
outset 外凸效果线

padding

  • padding成员:padding-left、padding-right、padding-top、padding-bottom
  • padding整体设置
值得个数 方位
1 上下左右
2 上下 | 左右
3 上 | 左右 | 下
4 上 | 右 | 下 | 左

margin

  • margin成员:margin-left、margin-right、margin-top、margin-bottom
  • margin整体设置
赋值个数 方位
1 上下左右
2 上下 | 左右
3 上 | 左右 | 下
4 上 | 右 | 下 | 左

四、边界圆角

单角设置

border-top-left-radius

一个固定值:表示横纵
border-top-left-radius: 100px;
两个固定值:表示横与纵
border-top-left-radius: 100px,50px;
百分比赋值
border-top-left-radius: 100%;

整体赋值

border-radius

不分方位
左上为第一个角,顺时针,不足找对角
border-radius: 30px;

区分横纵
1.控制横向/控制纵向
2.横向又可以分为1,2,3,4个值;纵向亦然
border-radius: 10px 100px 50px /50px;
左上横10 右上横100 右下横50 左下横100/纵向全为50

五、常用标签

超连接标签a

语法
<a href="链接地址"  title=‘鼠标悬浮的文本提示‘ target=‘目标位置‘></a>

target:_self 当前页面打开 | _blank 新开空白标签为来打开目标网页

基本使用
<a href="https://www.baidu.com">百度</a>

注:如果是在本地的链接。当前目录./ 上一级目录..

其他应用场景
  • mailto:邮件给...
  • tel:电话给...
  • sms:信息给...
a标签默认属性的清除
a {
    color: #333;
    text-decoration: none;
    outline: 0
}
锚点

通过锚点名与#锚点名建起关联

name=‘tag‘|href=‘#tag‘

前往底部

<a href="#tag">前往底部</a>

设置一个锚点

<div class="bottom">
        <a name="tag">底部</a>
</div>

图片标签img

语法
<img src="图片地址" alt="加载错误提示文字" title="鼠标悬浮的文本提示">

列表标签list

reset操作
<style>
        ol,ul{
            margin: 0;
            padding:0;
            list-style: none;
        }
    </style>
有序列表
<ol>
    <li>列表项</li>
    <li>列表项</li>
    <li>列表项</li>
</ol>
无序列表
<ul>
    <li>列表项</li>
    <li>列表项</li>
    <li>列表项</li>
</ul>

六、伪类选择器

a标签的四大伪类

  • :link 初始状态
  • :hover 鼠标悬停
  • :active 活动状态
  • :visited 访问过后的状态

注:鼠标样式

{
    cursor: pointer | wait | move;
}

内容伪类

  • :before:内容之前
  • :after:内容之后
.txt:before{
    content: ‘我是前缀```‘
}
.txt:after{
    content: ‘```我是后缀‘
}

索引伪类

  • :nth-child(n):位置优先,再匹配类型。找到所有结构下的第N个标签,如果刚好是所选类型,那么匹配成功。
  • :nth-of-type(n):类型优先,再匹配位置。先将页面中的所有的所选类型找出,在匹配那些在自己结构层次下的第N个。

注:位置从1开始

取反伪类

  • :not(selector):对selector进行取反

七、盒模型布局

做页面必备reset操作

*{
    margin: 0
}

盒模型布局基本介绍

  • 布局方位:margin-left、margin-right、margin-top、margin-bottom
  • 影响自身布局:margin-left、margin-top
  • 影响兄弟布局:margin-right、margin-bottom

    ? margin-bottom影响上下兄弟,尽量别对margin-right进行设置

    ? margin-right影响上下兄弟,尽量别对margin-bottom进行设置

display:显示方式

  • 块:block
  • 内联:inline
  • 内联块:inline-block

兄弟坑

    <!-- 坑1 -->
    <section class="s1"></section>
    <section class="s2"></section>

盒模型布局的坑只出现在和margin-top相关的地方

        .s1,.s2{
            width: 100px;
            height: 100px;
            background-color: pink;
        }

和左右不一样,上下top会重叠取大值

        .s1{
            margin-bottom: 20px;
        }
        .s2{
            margin-top: 20px;
        }

父子坑

    <!-- 坑2 -->
    <div class="sup">
        <div class="sub"></div>
    </div>
.sup{
            width: 200px;
            height: 200px;
            background-color:cyan;
        }
        .sub{
            width: 100px;
            height: 100px;
            background-color:orange;
        }

父子top重叠,取大值


    .sup{
        margin-top: 50px;
    }
    .sub{
        margin-left: 50px;
        /*margin-top:100px;*/
    }

解决方案

1.将父级固定

.sup{
    /border-top: 1px solid black;/
    /border-top: 1px solid transparent;/
    /保证显示区域不变200200/
    /height: 199px/
}

2.通过padding

.sup{
    padding-top:50px;
    height: 150px;
}

原文地址:https://www.cnblogs.com/xvchengqi/p/9688197.html

时间: 2024-08-24 07:33:57

DAY46-前端入门-组合选择器、标签a_img_list、盒模型、伪类、盒模型布局的相关文章

a 标签的四个伪类

link        有链接属性时visited    链接地址已被访问过active     被用户激活(在鼠标点击与释放之间发生的事件)hover      其鼠标悬停 <!DOCTYPE HTML><html>  <head>  <title>a标签的四个伪类</title>  <meta charset="utf-8">  <meta name="Keywords" conten

web前端入门到实战:外边距合并现象、盒子模型以及宽度和高度

一. 在默认布局的垂直方向上,默认情况下外边距是是不会叠加的,会出现合并现象,谁的外边距较大,就听谁的:但是在水平方向就不会出现这种状况,我们举个例子 span{ display: inline-block; width:100px; height:100px; border:1px solid red; } div{ width:100px; height:100px; border:1px solid green; } /*我们让span的两个盒子,相距100px*/ .hezi1{ mar

IMG标签与before,after伪类

在CSS中总有一些你不用不知道,用到才知道的“坑”.比如今天要谈的,把 before, after 伪类用在 <img> 标签上.嗯,实际上你用你会发现,在大多数浏览器这是无效的,dom中并不会出现你想要的结果.为什么会这样呢?让我们回归到 W3C 标准中寻觅一下,在标准中,before, after 伪类的定义如: As their names indicate, the :before and :after pseudo-elements specify the location of c

H5与CS3权威下.19 选择器(2)结构性伪类选择器

1.CSS中的伪类选择器及伪元素 (1)与自定义的class类选择器不同,伪类选择器是CSS中已经定义好的选择器. eg:a:link{color:#ff0000;} (2)伪元素的使用方法: 选择器:伪元素{属性:值} 选择器.类名:伪元素{属性:值} 2.css中常用的伪元素选择器 (1)first-line:向某元素中的第一行文字使用样式. eg: 1 <p>伪元素选择器 <br>类选择器</p> 1 p:first-line{background: pink;}

对html标签 元素 以及css伪类和伪元素的理解

标签:这应该都知道.<br/> .<a>.<p></p> 等都是标签. 元素:标签开始到结束.比如:<p>p之间的内容<p/> ,红色部分就是元素. 元素的内容:标签开始到结束之间的部分,上述红色部分中的"p之间的内容",这就是元素的内容. 伪类:针对的是特殊状态的元素. 伪元素:针对的是元素的内容. 伪元素和伪类之所以难以分清,是因为他们的效果类似并且写法相仿,css3 为了区分两者,已经明确规定了伪类用一个冒号

a标签的四个伪类

A标签的css样式 CSS为一些特殊效果准备了特定的工具,我们称之为“伪类”.其中有几项是我们经常用到的,下面我们就详细介绍一下经常用于定义链接样式的四个伪类,它们分别是: :link    :visited    :hover    :active 因为我们要定义链接样式,所以其中必不可少的就是超级链接中的锚标签--a,锚标签和伪类链接起来书写的方法就是定义链接样式的基础方法,它们的写法如下: a:link,定义正常链接的样式:    a:visited,定义已访问过链接的样式:    a:h

CSS快速入门-组合选择器

<div class="gradefather"> hello1 <div class="father">hello2 <p class="son">hello4</p> </div> <p>hello3</p> <p>hello5</p> </div> 一.A,B :任意选择器 A or B div,p { #所有div或者p

a标签的四个伪类是什么?如何排序?为什么?

爱恨分明原则: l v h a 注释:为了产生预期的效果,在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后 ! 注释:为了产生预期的效果,在 CSS 定义中,a:active 必须位于 a:hover 之后!! 注释:Pseudo-class(伪类)的名称对大小写不敏感. 注释:伪类可与 CSS 类配合使用

前端 高级选择器 伪类选择器

高级选择器 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>高级选择器</title> <style> .h2 { color: red; } /*1.后代(子代)选择器*/ /*后代:空格连接 子代:>连接*/ /*body > .h2 控制一个 | body .h2 控制两个*/ body > .h2 { fo