首页 > 其他分享 >复习css

复习css

时间:2023-10-21 15:13:05浏览次数:52  
标签:浮动 复习 样式 clear 元素 block 选择器 css

复习css

样式

内联样式,行内样式,外部样式优先级

离HTML元素越近,优先级越高

内联样式离元素近:行内样式>内联样式>外部样式

外部样式离元素近:行内样式>外部样式>内敛样式

本质:浏览器从上到下解析过程中,后出现的样式会覆盖较早出现的样式

选择器

基本选择器

id > 类 > 标签

本质:定位越精准,优先级越高

层次选择器

子孙选择器:body p{} 选择body下所有p元素,即所有p后代。也叫后代选择器。

子选择器:body > p{} 选择body下第一p元素,即所有p儿子

相邻弟弟选择器:.className + p{} 选择与某个类相邻且靠后的第一个p元素,即第一个p弟弟。想象成i++,就是每次加一个。如果第一个弟弟不是p,那么无反应。

弟弟选择器:.className ~ p{} 选择与某个类同一层且靠后的所有p元素,即所有p弟弟。想象成表示范围的~。不关心相不相邻,只要在后面即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试层次选择器</title>
    <style>
        .active + p{
            background: red;
        }
        .active ~ p{
            background: red;
        }
    </style>
</head>
<body>
<p class="active">0</p>
<a href="">我是a标签</a>
<p>1</p>
<p>2</p>
<p>3</p>
</body>
</html>

结构伪类选择器

ul li:first-child{}

ul li:last-child{}

p:nth-child(1){} 通过p找到父元素,然后选择父元素的第一个儿子,这个儿子必须是p,否则无反应

p:nth-of-type(2){} 通过p找到父元素,然后选择父元素的第二p个元素,这个p元素不一定位于第二的位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试结构伪类选择器</title>
    <style>
        p:nth-child(1) {
            background-color: blue;
        }

        p:nth-of-type(2) {
            background-color: red;
        }
    </style>
</head>
<body>
    <p>p1</p>
    <a href="">aaa</a>
    <p>p2</p>
    <p>p3</p>
    <p>p4</p>
    <div>
        <p>ddd</p>
    </div>
</body>
</html>

属性选择器

a[id]{} 选择有id的a

a[id="idName"]{} 选择有id为idName的a

a[class*="className"]{} 选择有class包含className的a,为啥是包含?因为一个元素可以有多个类名。

a[href^="http"]{} 选择href以http开头的a

a[href$="com"]{} 选择href以com结尾的a

行高

一行内容所占的高度。

包括元素上方的高度,元素自身的高度,元素下方的高度。

设置单行文字上下居中:line-height = height

盒子模型

margin的妙用

margin:0 auto;/*使盒子水平居中*/

盒子的宽高

盒子的宽度

margin-left + border-left + padding-left + 内容宽度 + padding-right + border-right + margin-right

盒子的高度

margin-top + border-top + padding-top + 内容高度 + padding-bottom + border-bottom + margin-bottom

display

常见的行内元素:span,img,a

行内元素不可以设置宽,高,除非用display:blockdisplay:inline-block

span设为inline-block后,可以调整宽高,但是在同一行显示。

任何元素设为block后一定是独占一行。

div设为inline后,设置的宽高也不起作用了

inline-block的妙用:导航条的列表

浮动float

把屏幕比喻成地面,浮动的元素就是气球,是先从地面浮起来,再向左向右浮动。

清除浮动clear是在浮动的基础上修改(调整浮动的位置)的,不是说取消浮动。

clear:left;		/*左侧不允许有浮动元素*/
clear:right;	/*右侧不允许有浮动元素*/
clear:both;		/*两侧不允许有浮动元素*/
clear:none;		/*不清除浮动*/

clear可以让浮动的元素,在浮动的基础上,重新构成一个标准的文档流(从上往下显示)。

个人理解:清除浮动就是挤开我这一层的浮动元素,我独占某一层,从屏幕(平面)上看就是从上到下排列元素。

浮动的后遗症:父级元素塌陷

解决办法:

1.将父级div设置一个固定的高度,从而把浮动的元素也包进去。

2.父元素中新增一个div,设置clear:both

3.父元素属性overflow:hidden/scroll/auto

4.父元素添加伪类:

#father:after{
    content:'';
    display:block;
    clear:both;
}

实例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试父级塌陷</title>
    <style>
        .father {
            border: 1px solid red;
        }

        .layer1, .layer2, .layer3 {
            width: 500px;
            height: 100px;
            background-color: gold;
            border: 1px blue dashed;
            float: right;
            display: inline-block;
        }

        .father:after {
            content: '';
            display: block;
            clear: both;
        }
    </style>
</head>
<body>
<div class="father">
    <div class="layer1">
        我是layer1
    </div>
    <div class="layer2">
        我是layer2
    </div>
    <div class="layer3">
        我是layer3
    </div>
</div>
</body>
</html>

我的理解是:挤开某一层的浮动元素,浮动元素在它自己那一层浮动着,我独占某一层,然后撑开了父元素。

定位

相对定位

position:relative

相对于元素自身原来的位置偏移,原来空间仍然保留。

实践: https://www.bilibili.com/video/BV1YJ411a7dy/?p=20&share_source=copy_web&vd_source=da1006171a54936e673f791c1d09d070

绝对定位

positive:absolute

最近的父级设置了position:relative/absolute情况下,相对于父级元素定位。

最近的父级没有设置position:relative/absolute情况下,相对html定位,元素会移动。

不保留偏移之前的空间。

固定定位

position:fixed

相对于浏览器窗口定位,不论如何滑动,永远固定在某个角落。常用来设计导航条和回到顶部按钮。

标签:浮动,复习,样式,clear,元素,block,选择器,css
From: https://www.cnblogs.com/yx-study/p/17778973.html

相关文章

  • HTML+CSS面试题
    1、内元素和块级元素的区别?行内元素:不会独立出现在一行,单独使用的时候后面不会有换行符的元素。eg:span,strong,img,a等。这些元素,默认的高宽,总是其内容的高宽。并且,margin和padding值,只有左右有效。块级元素:独立在一行的元素,他们后面会自动带有换行符。eg:div,p,form,u......
  • 随缘复习复赛
    明天就要下午考复赛了,突然慌起来了,随缘复习下板子,顺带记录下考试策略和注意事项。祖传板子附一份别人的模板总结并查集见这篇。intf[MAXN];intfind(intx){ returnf[x]==x?x:f[x]=find(f[x]);}voidmerge(intx,inty){ f[find(x)]=find(y);}堆见这篇。......
  • 03前端开发【css结束】
    伪元素选择器'''通过css操作文本内容'''1.修改首个字体样式p:first-letter{color:red;font-size:48px;}2.在文本开头添加内容p:before{content:'哈哈';color:bule;......
  • 防御性CSS
    什么是防御性CSS呢?我的理解是我们所写的网页的内容不完全是静态的,也是可以发生变化的,因此也就增加了CSS出现的问题。不管网页的内容是多是少,还是窗口尺寸是大还是小,页面里面的内容与布局是要能正常显示而不会被破坏。Flexbox折行Flexbox是CSS中经常使用的布局,在父元素中设......
  • css 背景样式 梯形/平行四边形
    绘制这种不规则的背景图形,目前我的思路是使用伪元素伪元素的优点在于不用添加新的元素实现平行效果使用了css transform:skew();具体代码如下{position:relative;padding-left:12px;color:#2187FF;background:#14395c;border-im......
  • html5+css-06
    HTML5(最常用)新增标签语义化header:头部nav:导航article:内容section:定义文档某个区域aside:侧边栏footer:尾部主要针对搜索引擎可多次使用在IE9中需要转化为块级标签视频audio:音频(.mp3)video:视频(尽量使用.mp4)新的表单emailurlnumberrangeDatepicker......
  • CSS-05
    精灵图为了减少服务器接收和发送请求的的次数background-position一般情况下,向上向左均是负的background:url(images/icons.png)no-repeat-1103px-333px;字体图标展示为图标,本质为文字结构样式简单的使用字体图标,复杂的使用精灵图字体图标追加(.json)CSS三角.box2{......
  • CSS 实现鼠标悬浮边框线动画效果
    一、transitionCSStransition(过渡效果)详解CSS中提供了5个有关过渡的属性,如下所示:transition-property:设置元素中参与过渡的属性;transition-duration:设置元素过渡的持续时间;transition-timing-function:设置元素过渡的动画类型;transition-delay:设置过渡效果延迟的时间,默......
  • CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属
    CSS3是用于为HTML文档添加样式和布局的最新版本的层叠样式表(CascadingStyleSheets)。下面是一些常用的CSS3属性及其详细解释:border-radius:设置元素的边框圆角的半径。可以使用四个值设置四个不同的圆角半径,也可以只使用一个值来设置统一的圆角。box-shadow:创建一个元素的阴影效果......
  • HTML5+CSS3+移动web 前端开发入门笔记(一)
    千古前端图文教程千古前端图文教程git的使用Git是一个分布式版本控制系统,它的作用主要包括以下几个方面:版本管理:Git可以跟踪文件的修改历史,记录每次提交的内容、时间和作者等信息。通过Git,开发人员可以轻松地查看和比较不同版本之间的差异,回滚到历史版本或者创建新的分支。多人协作......