Heim  >  Artikel  >  Web-Frontend  >  CSS-Interviewfragen (Referenz)

CSS-Interviewfragen (Referenz)

coldplay.xixi
coldplay.xixinach vorne
2020-08-03 16:02:442905Durchsuche

CSS-Interviewfragen (Referenz)

1. Das Standard-CSS-Box-Modell einführen? Was sind die Unterschiede zwischen den Box-Modellen niedrigerer IE-Versionen?

Das Standardmodell besteht aus vier Teilen:

  • Inhaltsbereich: ein Bereich, in dem Elemente wie Text, Bilder, usw. platziert werden können. Als Breiten- und Höhenindikatoren werden im Allgemeinen die Breite und Höhe des Inhalts festgelegt.
  • Innenrandbereich: der Abstand zwischen dem Inhalt und dem Rand
  • Randbereich : Rand
  • Äußerer Randbereich: durch den äußeren Rand begrenzt, verwenden Sie den leeren Bereich, um den Randbereich zu erweitern und benachbarte Elemente zu trennen

Modellunterscheidung:
Der Standardphänotyp bezieht sich zum Box-Modell, wobei die Boxgröße auf „Content-Box“ eingestellt ist, im Allgemeinen „Breite“, „Höhe“ bezieht sich auf die Breite und Höhe des Inhalts. Das IE-Boxmodell bezieht sich auf eine Box mit der Boxgröße Border-Box. Die Berechnung von Breite und Höhe erfolgt über Inhalt+Innenraum+Rand;

Themenempfehlung:Zusammenfassung der CSS-Interviewfragen im Jahr 2020 (aktuell)

2. Was sind die CSS-Selektoren? Welche können vererbt werden?

  • ID-Selektor (#myid)
  • Klassenselektor (.myclassName)
  • Tag-Selektor (p,h1,p)
  • Nachkommenselektor (ul>li)
  • Nachkommenselektor (li a)
  • Platzhalterselektor (*)
  • Attributselektor (a[rel=" external"])
  • Pseudoklassenselektor (a:hover,li:nth-child)

Vererbbare Stile: Schriftgröße, Schriftfamilie, Farbe
Nicht verfügbar. Vererbte Stile: Rand, Rand, Höhe, Breite

3. Wie berechnet man die CSS-Priorität?

  • Prioritätsprinzip, bei gleicher Gewichtung ist die Definition des nächstgelegenen Stils genau
  • Das Laden von Stilen unterliegt dem letzten geladene Positionierung

Priorität ist:

  • Gleiche Gewichtung: Inline-Stil (im Tag)> Eingebetteter Stil Tabelle (in aktueller Datei)>Externer Stil (in externer Datei). )
  • !important >id >class >tag
  • !important hat eine höhere Priorität als inline

4 Was sind die Anzeigewerte? ? Erklären Sie ihre Rolle

  • Blockblocktyp. Die Standardbreite ist die Breite und Höhe des übergeordneten Elements. Es werden keine Zeilenumbrüche angezeigt und
  • inline Inline-Elemente. Die Standardbreite ist die Inhaltsbreite und kann nicht eingestellt werden, angezeigt in Zeile
  • inline-block Die Standardbreite ist die Inhaltsbreite, Breite und Höhe können eingestellt werden, angezeigt in Zeile
  • list-item Wie Blocktypelemente können Breite und Höhe eingestellt und in einer Zeile angezeigt werden
  • table Dieses Element wird als Abrechnungstabelle angezeigt
  • inherit legt den Wert fest des Anzeigeattributs sollte vom übergeordneten Element geerbt werden
  • 5 Die Werte für Position, Freigabe und Absolutheit sind weit entfernt. Der Punkt ist?

absolut generiert ein absolut positioniertes Element, positioniert relativ zum ersten übergeordneten Element mit dem statischen Wertteil
  • fest generiert ein absolutes Element, positioniert relativ zum Browserfenster
  • relative Erzeugt ein relativ positioniertes Element, positioniert relativ zu seiner normalen Position
  • statischer Standardwert. Es gibt keine Positionierung und das Element erscheint im normalen Ablauf.
  • inherit gibt an, dass der Wert des Positionsattributs vom übergeordneten Element geerbt wird
  • 6 Was sind die Eigenschaften? von CSS?

Übergang
  •   transition-property:width
      transition-duration:1s
      transition-timing-function:linear
      transition-delay:2s
Animation

animation:动画名称,一个周期花费时间,云顶曲线(默认ease),动画延迟(默认0),动画播放次数(默认1),是否反向播放动画(默认normal),是否暂停动画(默认running)

Formtransformation
  • transform: 使用于2D或3D转换的元素
    transform-origin: 装换元素的位置(围绕哪个点进行装换).默认(x,y,z);
    Selektor
  • Schatten

box-shadow: 水平阴影的位置 垂直阴影的位置 模糊距离 阴影的大小 阴影的颜色 阴影开始的方向(默认是从里向外,设置inset就是从外往里)

Randbild

border-image: 设置图片路径 设置边框背景图的分割方式 设置或检索对象的边框厚度 设置或检索对象的边框背景图向外扩展 设置边框图片的平铺方式

Abgerundeter Rand
  •   border-radius: n1 n2 n3 n4;
    /* n1-n4 四个值得顺序是左上角,右上角,右下角,左下角 */
Spiegelung (Spiegelung)

box-reflect: 方向[above-上|below-下|right-右|left-左],偏移量,遮罩图片

Text
Zeilenumbruch
  • word-break:normal(默认使用浏览器默认的换行规则)|break-all(允许在单词内换行)|keep-all(只能在半角空格或连字符处换行)Auslassungspunkte überschreiten
  • overflow: hidden;
    white-space: nowrap;
    text-overflow:ellipsis;
Mehrzeilige Auslassungspunkte
  • overflow:hiden;
    text-overflow:ellipsis;用省略号"..."隐藏超出范围的文本
    display:-webkit-box;  //将对象作为弹性伸缩盒子模型显示
    -webkit-line-clamp:2; //用来限制在一个块元素显示的文本的行数
    -webkit-box-orient:vertical;设置弹性盒对象的子元素的排列方式
Textschatten

text-shadow: 水平阴影 垂直阴影 模糊阴影 阴影颜色

Farbe
  • rgba (rgb-Farbwert, a ist Transparenz)

Verlauf
  • Linearer Verlauf und radialer Verlauf
  • filter(滤镜)

filter: 滤镜效果(透明度)

  • 弹性布局

弹性布局就是flex布局

-栅格布局

栅格化布局。就是grid

  • 盒模型
  • border-box 边框和内边距包含在元素的宽高之内
  • content-box 边框和内边距不包含在元素的宽高之内

7. 请解释一下css3的flex(弹性盒布局模型)以及使用场景

一个用于页面布局的全新css3功能,flexbox可以把列表放在同一个方向(从上到下排列,从左到右),并且列表能延伸到占用可用的空间,较为复杂的布局还可以嵌套一个伸缩容器(flex container)来实现。采用flex布局的元素,成为flex容器。常规布局是基于块和内联流方向,而flex布局是基于flex布局flex-flow流可以很方便的用来做居中,能对不同屏幕大小自适应,在布局上有了比以前更加灵活的空间

8. 经常遇到的浏览器的兼容性问题有哪些,原因,解决方法是什么

  • png24位的图片在Ie6浏览器上出现背景。解决方案是做成png8
  • 浏览器默认的margin和padding不同。解决方案是假一个全局的*{margin:0;padding:0}来统一
  • IE6双边距bug;矿属性变迁float后,又有横向的margin情况下,在Ie6显示margin比设置的大。解决方案是在float的标签控制中加入display:inline;将其妆花为行内渐进识别的方式,从总体中逐步排除局部。
  • 设置较小高度标签(一般小于10px),在IE6,IE7中高度超出自己设置高度。解决方法:给超出高度的标签设置overflow:hidden;或者设置行高line-hieght小于你设置的高度
  • chrome中文界面默认或将小于12px的文本强制按照12px的文本强制按照12px显示,可通过加入css属性 -webkit-text-size-adjust:none 解决

移动端

  • 1px边框问题。解决方案采用微元素模拟的方式
 .scale{
  position: relative;
  border:none;
 }
.scale:after{
  content: '';
  position: absolute;
  bottom: 0;
  background: #000;
  width: 100%;
  height: 1px;
  -webkit-transform: scaleY(0.5);
  transform: scaleY(0.5);
  -webkit-transform-origin: 0 0;
  transform-origin: 0 0;
}
  • 点透问题,在安卓某些版本触发两次点击问题。解决方案:引入fastclick处理点透问题
  • 安卓部分版本input里的placeholder位置偏上。解决方案:把input的line-height设为normal
  • ios的body位置overflow:hidden后仍然可以滚动。解决方案:一般在所有元素最外层再包一大盒子.wrapper
 .wrapper{
   position:relative;
   overflow:hidden;
 }
  • ios滚动卡顿。解决方案:在滚动的容器上加上webkit-over-flow-scrolling:touch;

9. 请解释一下为什么需要清浮动?清浮动的方式

清浮动是为了清除使用浮动元素产生的影响。浮动的元素,高度会塌陷,而高度的塌陷使页面后面的布局不能正常显示

  • 父级p定义height
  • 在浮动元素后面添加class为clear的空p元素,给这个p设置样式.clear{clear:both}
  • 给父容器添加overflow:hidden或者auto样式
  • 给父容器添加clearfix的class,用伪类clearfix:after;来这个样式。清除浮动
.clearfix{
    zoom:1;
}
.clear:after{
    content:'.';
    height:0;
    clear:both;
    display:block;
    visibility:hidden;
}

10. margin和padding分别适合什么场景使用?

margin是用来隔开元素与元素的间距;padding是用来隔开元素与内容的间隔。margin是用来布局分开元素,使元素与元素互不相干;padding用于元素与内容之间的间隔,让内容与元素之间有一段间距

11.什么是伪类,什么是伪元素,他们的区别?

  • 伪类的受体是文档树中已有的元素,而伪元素则创建了一个DOM外的元素
  • 伪类用于添加元素的特殊效果,而伪元素则是添加元素的内容
  • 伪类使用的一个冒号,为元素使用两个冒号
  • 伪类更常用一些简单的动画或者交互的样式,例如滑入滑出,而为伪元素更常用语字体图标,清除浮动等

12. 什么是外边距合并

外边距合并指的是,当两个垂直外边距相遇时,他们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中较大者

13. 实现水平垂直居中

示例:

<p class="md-warp">
    <span class="md-main"></span>
</p>
.md-warp{
    width: 400px;
    height: 300px;
    max-width: 100%;
    border: 1px solid #000;
}
.md-main{
    display: block;
    width: 100px;
    height: 100px;
    background: #f00;
}

水平居中

  • margin法
    需要满足三个条件
  • 元素定宽
  • 元素为块级元素或行内元素设置display:block
  • 元素的margin:left或者margin-right都必须设置auto
    三个条件缺一不可
.md-main{
    margin: 0 auto
}
  • 定位法
  • 元素定宽
  • 元素绝对定位,并设置left:50%;
    +元素负做边距margin-left为宽度的一半
.md-wrap{
    position:relative;
}
.md-main{
    position:absolute;
    left:50%;
    margin-left:-50px
}

有些时候元素宽度不是固定的,依然可以使用定位法实现水平居中用到css3中的transform属性中的translate

.md-warp{
    position: relative;
}
// 注意此时md-main不设置width为100px
.md-main{
    position: absolute;
    left: 50%;
    -webkit-transform: translate(-50%,0);
    -ms-transform: translate(-50%,0);
    -o-transform: translate(-50%,0);
    transform: translate(-50%,0);
}
  • 文字水平居中

直接使用text-align:center即可

垂直居中

  • 定位法

和水平居中类似,只是把left:50%换成top:50%,副边距和transform属性进行对应更改即可

优点:能在各个浏览器下工作,结构简单明了,不需要增加额外的标签

 .md-warp{
    position: relative;
}
.md-main{
    position: absolute;
    /* 核心 */
    top: 50%;
    margin-top: -50px;
}

不确定高度的时候

.md-warp{
    position: relative;
}
.md-main{
    position: absolute;
    top: 50%;
    // 注意此时md-main不设置height为100px
    -webkit-transform: translate(0,-50%);
    -ms-transform: translate(0,-50%);
    -o-transform: translate(0,-50%);
    transform: translate(0,-50%);
}
  • 单行文本垂直居中

需要满足两个条件:

  • 元素内容是单行,并且其高度是固定不变的
  • 将其line-height设置成height的值一样
p{
    width: 400px;
    height: 300px;
    border: 1px solid #000;
}
span{
    line-height: 300px;
}

视窗单位的解决办法

让元素在视窗中居中,使用vh实现

.md-warp{
    position: relative;
}
.md-main{
    position: absolute;
    margin: 50vh auto 0;
    transform: translateY(-50%);
}

Flexbox的解决方案

完成这项工作只需要两个样式,在需要水平垂直居中的父元素中设置display:flex和在水平存执居中的元素设置margin:auto

.md-wrap{
    display:flex
}
.md-main{
    display:auto
}

Flexbox的实现文本的水平垂直居中同样很简单

 .md-warp{
    display:flex;
}
.md-main{
    display: flex;
  align-items: center;
  justify-content: center;
    margin: auto;
}

绝对垂直居中

.md-wrap{
    position: relative;
}
.md-main{
    position:absolute;
    top:0&#39;
    right:0
    bottom:0;
    left:0;
    margin:auto;
}

最好不要使用绝对定位,因为他对整体的布局影响相当的大

相关教程推荐:CSS视频教程

Das obige ist der detaillierte Inhalt vonCSS-Interviewfragen (Referenz). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Fragen zum CSS3-Interview 2021Nächster Artikel:Fragen zum CSS3-Interview 2021

In Verbindung stehende Artikel

Mehr sehen