前端面试CSS「建议收藏」

前端面试CSS「建议收藏」前端面试CSS

大家好,又见面了,我是你们的朋友全栈君。

选择器的权重和优先级

  • 选择器的类型:

    • id选择器(#myid)
    • 类选择器(.myclassname)
    • 标签选择器(div, h1, p)
    • 相邻选择器(h1 + p)
    • 子选择器(ul > li)
    • 后代选择器(li a)
    • 通配符选择器(*)
    • 属性选择器(a[rel=”external”])
    • 伪类选择器(a:hover, li:nth-child)

权重分为四级:

代表内联样式,如style=”xxx”,权值为 1000;
代表 ID 选择器,如#content,权值为 100;
代表类、伪类和属性选择器,如.content、:hover、[attribute],权值为 10;
代表元素选择器和伪元素选择器,如div、p,权值为 1。

需要注意的是:通用选择器(*)、子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以他们的权值都为 0。 权重值大的选择器其优先级也高,相同权重的优先级又遵循后定义覆盖前面定义的情况。

盒模型

  • 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
  • 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

box-sizing属性:

  • content-box:一个标准模式下的盒模型的计算方式
  • border-box:一个怪异模式下的盒模型的计算方式

div设置了box-sizing:border-box之后,width的宽度是内容 + padding + 边框的宽度(不包括margin),这样就比较符合我们的实际要求了。

浮动float

float被设计出来的初衷是用于文字环绕效果,即一个图片一段文字,图片float:left之后,文字会环绕图片.
float 的破坏性 —— float 破坏了父标签的原本结构,使得父标签出现了坍塌现象。导致这一现象的最根本原因在于:被设置了 float 的元素会脱离文档流。其根本原因在于 float 的设计初衷是解决文字环绕图片的问题。大家要记住 float 的这个影响。

清除浮动

.clearfix:after {
    content: '';
    display: table;
    clear: both;
}
.clearfix {
    *zoom: 1; /* 兼容 IE 低版本 */
}
<div class="clearfix">
    <img src="image/1.png" style="float: left"/>
    <img src="image/2.png" style="float: left"/>
</div>

如何实现水平居中

inline元素使用

text-align: center

block元素使用

margin: auto

绝对定位元素可结合left和margin实现,但是必须知道宽度。

.item {
    width: 300px;
    height: 100px;
    position: absolute;
    left: 50%;
    margin: -150px;
}

如何实现垂直居中

inline 元素可设置line-height的值等于height值,如单行文字垂直居中:

.container {
   height: 50px;
   line-height: 50px;
}

绝对定位元素,可结合left和margin实现,但是必须知道尺寸。

  • 优点:兼容性好
  • 缺点:需要提前知道尺寸
.container {
    position: relative;
    height: 200px;
}
.item {
    width: 80px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-top: -20px;
    margin-left: -40px;
}

绝对定位可结合transform实现居中。

  • 优点:不需要提前知道尺寸
  • 缺点:兼容性不好
.container {
    position: relative;
    height: 200px;
}
.item {
    width: 80px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: blue;
}

绝对定位结合margin: auto,不需要提前知道尺寸,兼容性好

.container {
    position: relative;
    height: 300px;
}
.item {
    width: 100px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

移动端的布局用过媒体查询吗?

  • <head>里边<link rel=”stylesheet” type=”text/css” href=”xxx.css” media=”only screen and (max-device-width:480px)”>
  • CSS : @media only screen and (max-device-width:480px) {/css样式/}

css动画

首先,使用@keyframes定义一个动画,名称为testAnimation,如下代码,通过百分比来设置不同的 CSS 样式,规定动画的变化。所有的动画变化都可以这么定义出来。

@keyframes myfirst
{
    0%   {background: red; left:0; top:0;}
    25%  {background: yellow; left:200px; top:0;}
    50%  {background: blue; left:200px; top:200px;}
    75%  {background: green; left:0; top:200px;}
    100% {background: red; left:0; top:0;}
}

然后,针对一个 CSS 选择器来设置动画,例如针对div元素设置动画,如下:

div {
    width: 100px;
    height: 50px;
    position: absolute;

    animation-name: myfirst;
    animation-duration: 5s;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106973.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 能向入口函数传入多个参数的 QueueUserWorkItem

    能向入口函数传入多个参数的 QueueUserWorkItem不啰嗦了,花一周时间也没赶上std::async和std::thread的设计,标准库的设计真的,很优秀。我记下这段时间里做了什么;这里包含了把函数拆成两步调用的方法,第一步传参,第二步执行;SplitInvoke;如果我能把第一步放到A线程,第二步放到B线程,就能解决std::thread潜在的两次拷贝和对象(Windows的窗口对象等)绑定到线程问题,就能制造一个优于std::…

  • 周易经典语录 名句集锦_感悟人生的句子 励志

    周易经典语录 名句集锦_感悟人生的句子 励志《周易》亦称《易经》,简称《易》,此书是我国最早的哲学著作,为“六经之首”,其中也有大量反映古代生活的歌谣。古代有《连山》、《归藏》、《周易》三种不同系统的易学。《连山》据说是夏代的易学,《归藏》是殷代的易学,《周易》是周代的易学。前二书皆佚,今只存《周易》。1.居上位而不骄,在下位而不忧。出自《易经·乾传》。释义:在上位不骄傲自大,在下位就无须担忧了。2.人之所助者,信也。出自《易经…

  • putty怎么用?如何使用Putty远程管理Linux主机

    putty怎么用?如何使用Putty远程管理Linux主机

  • pycharm怎么设置代码补全_vs2010代码自动补全

    pycharm怎么设置代码补全_vs2010代码自动补全代码补全功能在PyCharm上是一流的。默认情况下PyCharm会在你输入的时候给出建议:由于此功能可有点耗电,你可以通过选择File→PowerSaveMode来禁用它。您仍然可以通过Control-Space显式使用这一功能。…

  • 45天带你玩转Node(第二天)走进Node.js「建议收藏」

    45天带你玩转Node(第二天)走进Node.js「建议收藏」粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦!虽然我们的Node.js还很年轻,但是他也已经有了很高的地位,让我们尽情的畅游在Node.js的专栏中吧,希望通过此专栏我们能够系统的将Node.js学好,它将会成为我们的一大亮点,我们可以用这款前端中的后端语言让提升我们的价值与眼界,如今的他也已经成为面试官口中的高并发面试内容了,一起加油!

  • HashMap底层实现原理_hadoop原理

    HashMap底层实现原理_hadoop原理Note:文章的内容基于JDK1.7进行分析,1.8做的改动文章末尾进行讲解。大家可以看一下:https://www.imooc.com/article/267756一、先来熟悉一下我们常用的HashMap1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号