Analyse echter Front-End-Interviewfragen
Dieses Mal werde ich Ihnen eine Analyse echter Front-End-Interviewfragen geben. Was sind die Vorsichtsmaßnahmen für die Analyse echter Front-End-Interviewfragen? Das Folgende ist ein praktischer Fall, schauen wir uns das an.
CSS für Front-End-Interviews
Der Unterschied zwischen Anzeige: keine und Sichtbarkeit: versteckt
Kontakt: Beide können das Element unsichtbar machen
Der Unterschied:
display:none
; Aus dem Rendering-Baum wird kein Platz belegt.visibility: hidden
Das Renderer-Element verschwindet weiterhin aus dem Rendering-Baum, aber der Inhalt ist nicht sichtbar >- ; Unabhängig davon, ob es sich um ein geerbtes Attribut handelt, verschwindet der Nachkommenknoten aufgrund des Verschwindens des Elements aus dem Rendering-Baum und kann nicht durch Ändern des Nachkommenknotenattributs angezeigt werden. ist ein geerbtes Attribut, der Nachkommenknoten verschwindet, weil er
erbt, und der Nachkommenknoten kann durch Festlegen von
ändert dasdisplay: none
angezeigt werden. Die Formelvisibility:hidden
hidden
visibility: visible
eines Element in einem regulären Fluss, der normalerweise einen Dokumentenfluss verursacht. Das Ändern des - -Attributs führt nur dazu, dass das Element
neu gezeichnet wird. Der Bildschirmleser liest nicht den Inhalt desdisplay
visibility
-Elements; 🎜> Element display: none;
visibility: hidden
CSS-Hack-Prinzipien und häufig verwendete Hacks
Prinzip: Verwenden Sie verschiedene Browser zur Unterstützung CSS und haben unterschiedliche Parsing-Ergebnisse. Schreiben Sie browserspezifische Stile.
Übliche Hacks umfassen
- Attribute-Hack
Selektor-Hack
IE-bedingte Kommentare
- Der Unterschied zwischen Link und @import
ist die
- -Methode,
- ist die
-Methode,
unterstützt das parallele Herunterladen maximal,link
HTML
@import
CSS
führt zu übermäßiger Verschachtelung Serialisierung Download, FOUC -
kann überlink
@import
angegeben werden, um den Kandidatenstil anzugeben -
früher Alslink
rel="alternate stylesheet"
Der Browser unterstützt können Sie - verwenden, um Stile in alten Browsern auszublenden.
muss vor den Stilregeln stehen. Sie können in der Dateilink
@import
@import
auf andere Dateien verweisen -
@import
css
Insgesamt: -
Was sind die geerbten Eigenschaften von CSSlink
@import
Über Textlayoutattribute wie:
-
word-break
letter-spacing
text-align
text-rendering
word-spacing
white-space
text-indent
text-transform
text-shadow
font
-
line-height
color
visibility
cursor
kollabierende Ränder
Zwei oder mehr benachbarte
werden zu einem- zusammengeführt, was als Margin Collapse bezeichnet wird. Die Regeln lauten wie folgt:
-
Zwei oder mehr benachbarte Blockelemente im normalen Fluss, die vertikal ausgerichtet sindmargin
margin
werden zusammenbrechen -
eines schwebenden Elements odermargin
Das -Elements oder eines absolut positionierten Elements kollabiert nicht mit dem Rand anderer Elemente in vertikaler Richtung Bei einem Element, das einen Formatierungskontext auf Blockebene erstellt, kommt es bei den untergeordneten Elementen
Die
margin-bottom
und Es wird auch gefaltet, wenn es benachbart istmargin-top
Das Standard-CSS-Box-Modell einführen? Was sind die Unterschiede zwischen den Box-Modellen niedrigerer IE-Versionen?
- Es gibt zwei Typen, IE-Box-Modell und W3C-Box-Modell
- Box-Modell: Inhalt, Polsterung), Rand, border;
- Unterschied: Der Inhaltsteil von IE berechnet Rahmen und Auffüllung;
Was sind die CSS-Selektoren? Welche Eigenschaften können vererbt werden?
- ID-Selektor (# myid)
- Klassenselektor (.myclassname)
Tag-Selektor (p, h1, p)
- Angrenzender Selektor (h1 + p)
- Untergeordneter Selektor ( ul > li)
Nachkommenselektor (li a)
Platzhalterselektor ( * )
- Attributselektor (a[rel = "external"])
- Pseudoklassenselektor Gerät (a:hover, li:nth -child)
- Vererbbare Stile:
font-size font-family color, UL LI DL DD DT
- Nicht vererbbare Stile:
border padding margin width height
Wie wird der CSS-Prioritätsalgorithmus berechnet?
- Prioritätsprinzip: Bei gleichem Gewicht hat derjenige mit der nächstgelegenen Stildefinition Vorrang.
- Der geladene Der Stil basiert auf dem zuletzt geladenen Stil. Die Positionierung unterliegt
- Die Priorität ist:
wichtig ist höher als die Inline-Priorität
!important > id > class > tag
Was sind die neuen Pseudoklassen in CSS3?
p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。 p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。 p:only-of-type 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。 p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。 p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。 :after 在元素之前添加内容,也可以用来做清除浮动。 :before 在元素之后添加内容 :enabled :disabled 控制表单控件的禁用状态。 :checked 单选框或复选框被选中
Wie zentriere ich p? Wie zentriere ich ein schwebendes Element? Wie zentriert man ein absolut positioniertes p?
- Legen Sie eine Breite für
fest und fügen Sie dann das
p
-Attributmargin:0 auto
p{ width:200px; margin:0 auto; }
- Mitte hinzu ein Float-Element
//确定容器的宽高 宽500 高 300 的层 //设置层的外边距 .p { width:500px ; height:300px;//高度可以不设 margin: -150px 0 0 -250px; position:relative; //相对定位 background-color:pink; //方便看效果 left:50%; top:50%; }
- Zentrieren Sie das absolut positionierte p
position: absolute; width: 1200px; background: none; margin: 0 auto; top: 0; left: 0; bottom: 0; right: 0;
Was sind die Werte von Anzeige? Erklären Sie ihre Funktion
- Block .
- keine Standardwert. Wird wie ein Inline-Elementtyp angezeigt.
- inline-block wird wie ein Inline-Element angezeigt, sein Inhalt wird jedoch wie ein Blocktypelement angezeigt.
- list-item wird wie ein Blocktypelement angezeigt und fügt Stillisten-Markup hinzu.
- table Dieses Element wird als Tabelle auf Blockebene angezeigt.
- inherit Gibt an, dass der Wert des Anzeigeattributs von geerbt werden soll übergeordnetes Element
Was sind die relativen und absoluten Positionierungsursprünge der Position?
- absolut
- Erzeugt ein absolut positioniertes Element, relativ zum ersten übergeordneten Element, dessen Wert keine statische Position ist.
- behoben (alter IE unterstützt es nicht)
- Generieren Sie absolut positionierte Elemente, die relativ zum Browserfenster positioniert sind .
- relativ
- Erzeugt ein relativ positioniertes Element, das relativ zu seiner normalen Position positioniert ist.
- statisch
默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right - z-index 声明)。
inherit
规定从父元素继承 position 属性的值
CSS3有哪些新特性?
新增各种CSS选择器 (: not(.input):所有 class 不是“input”的节点)
圆角 (border-radius:8px)
多列布局 (multi-column layout)
阴影和反射 (ShadowReflect)
文字特效 (text-shadow、)
文字渲染 (Text-decoration)
线性渐变 (gradient)
旋转 (transform)
增加了旋转,缩放,定位,倾斜,动画,多背景
transform:\scale(0.85,0.90)\ translate(0px,-30px)\ skew(-9deg,0deg)\Animation:
用纯CSS创建一个三角形的原理是什么?
// 把上、左、右三条边隐藏掉(颜色设为 transparent) #demo { width: 0; height: 0; border-width: 20px; border-style: solid; border-color: transparent transparent red transparent; }
一个满屏 品 字布局 如何设计?
简单的方式:
上面的p宽100%,
下面的两个p分别宽50%,
然后用float或者inline使其不换行即可
经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.
浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一
IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;
Firefox下,只能使用getAttribute()获取自定义属性。
解决方法:统一通过getAttribute()获取自定义属性
IE下,even对象有x,y属性,但是没有pageX,pageY属性
Firefox下,event对象有pageX,pageY属性,但是没有x,y属性
li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
行框的排列会受到中间空白(回车空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了
为什么要初始化CSS样式
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异
对BFC规范(块级格式化上下文:block formatting context)的理解?
一个页面是由很多个 Box 组成的,元素的类型和 display 属性,决定了这个 Box 的类型
不同类型的 Box,会参与不同的 Formatting Context(决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染,也就是说BFC内部的元素和外部的元素不会互相影响
css定义的权重
// 以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下/// 例子是演示各种定义的权重值: /*权重为1*/ p{ } /*权重为10*/ .class1{ } /*权重为100*/ #id1{ } /*权重为100+1=101*/ #id1 p{ } /*权重为10+1=11*/ .class1 p{ } /*权重为10+10+1=21*/ .class1 .class2 p{ } // 如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现
display:inline-block 什么时候会显示间隙?(携程)
Leerzeichen entfernen, negative Ränder verwenden, Schriftgröße:0, Buchstabenabstand, Wortabstand verwenden
Sprechen Sie über schwebend und klar float
Eine schwebende Box kann nach links oder rechts verschoben werden, bis ihre äußere Kante den Rand der enthaltenden Box oder einer anderen schwebenden Box berührt. Da sich die schwebende Box nicht im normalen Fluss des Dokuments befindet, verhält sich die Blockbox des normalen Flusses des Dokuments so, als ob die schwebende Box nicht vorhanden wäre. Die schwebende Blockbox schwebt auf der Blockbox des normalen Dokumentflusses
Das Standard-CSS-Boxmodell vorstellen? Was sind die Unterschiede zwischen den Box-Modellen niedrigerer IE-Versionen?
Zusammensetzung des Boxmodells: Inhalt, Polsterung, Rahmen, Rand
In Browsern von IE8 und niedriger ist DOCTYPE nicht deklariert, und die Breite und Höhe des Inhalts umfasst innere Polsterung und Ränder, was als seltsames Boxmodell (IE-Boxmodell) bezeichnet wird.
Standard (W3C) Boxmodell: Elementbreite = Breite + Polsterung + Rand + Rand
Weird (IE) Box-Modell: Elementbreite = Breite + Rand
Standardbrowser lösen das Parsen im „seltsamen Modus“ aus und Berechnung von Breite und Höhe durch Festlegen des Box-Sizing: Border-Box-Attributs von CSS3
Welche sind die häufig verwendeten Attribute der Box-Größe? Welche Funktionen haben sie jeweils?
box-sizing: content-box; // Standardmäßiger (W3C) Box-Modell-Elementeffekt
box-sizing: border-box; // Den Effekt des seltsamen (IE) Box-Modellelements auslösen
box-sizing: inherit // Den Wert des box-sizing-Attributs des übergeordneten Elements erben element
Was sind die CSS-Selektoren?
id selector #id
class selector .class
tag Selector p , h1, p
Angrenzender Selektor h1 + p
Unterselektor ul > li
Nachkommenselektor li a
Platzhalterselektor *
Attributselektor a[rel='external' ]
Pseudoklassenselektor a:hover, li:nth-child
Welche CSS-Eigenschaften können vererbt werden? Welche Eigenschaften können nicht vererbt werden?
Vererbbare Stile: Schriftgröße, Schriftfamilie, Farbe, Listenstil, Cursor
Nicht vererbbarer Stil: Breite , Höhe, Rand, Abstand, Rand, Hintergrund
Wie berechnet CSS die Selektorpriorität?
Das gleiche Gewicht, je nachdem, was der Definition am nächsten kommt: Inline-Stil> Interner Stil> Einschließlich externer Belastung Styling, der später geladene Stil überschreibt den zuvor geladenen Stil und den internen Stil
Selektorpriorität: Inline-Stil[1000] > Klasse[ 10] > 1]
Im gleichen Satz von Attributeinstellungen hat !important die höchste Priorität, höher als der Inline-Stil
- Was sind die neuen Pseudoklassen in CSS3?
:root Wählt das Stammelement des Dokuments aus, das dem HTML-Element entspricht.
-
:empty Wählt Elemente ohne untergeordnete Elemente aus elements
:target Wählen Sie das aktuell aktive Zielelement aus
:not(selector) Wählen Sie andere Elemente als das Selektorelement aus
-
:aktiviert Verfügbare Formularelemente auswählen
:deaktiviert Deaktivierte Formularelemente auswählen
:aktiviert Ausgewählte Formularelemente auswählen
:nachher Inhalt an der Vorderseite des Elements hinzufügen
:before Den letzten Inhalt innerhalb des Elements hinzufügen
:nth-child(n) Passt das angegebene untergeordnete Element unter dem übergeordneten Element an und sortiert unter allen untergeordnete Elemente nth
:nth-last-child(n) stimmt mit dem angegebenen untergeordneten Element unter dem übergeordneten Element überein, sortiert das n-te untergeordnete Element unter allen untergeordneten Elementen, gezählt von hinten nach vorne
:nth-child(odd)
:nth-child(even)
: n-tes Kind( 3n+1)
:erstes-Kind
:letztes-Kind
:only -child
:nth-of-type(n) Entspricht dem angegebenen untergeordneten Element unter dem übergeordneten Element und sortiert das n-te
- :nth-last-of-type(n) stimmt mit dem angegebenen untergeordneten Element unter dem übergeordneten Element überein, sortiert das n-te untergeordnete Element unter ähnlichen untergeordneten Elementen und zählt von hinten nach vorne
- :nth-of-type(odd)
- :nth-of-type(even)
- :nth- of-type(3n+1)
- :first-of-type
- :last-of-type
- :only- of-type
- ::selection Wählen Sie das vom Benutzer ausgewählte Element aus
- :first-line Wählen Sie die erste Zeile des Elements aus
- :first-letter Wählen Sie das erste Zeichen im Element aus
Bitte listen Sie mehrere Möglichkeiten auf Elemente ausblenden
- Sichtbarkeit: versteckt; Diese Eigenschaft verbirgt einfach ein Element, aber der vom Element eingenommene Platz bleibt bestehen
- Deckkraft : 0; CSS3-Eigenschaft, Einstellung 0 kann ein Element vollständig transparent machen
- position: absolut; Legen Sie einen großen linken negativen Wert fest, um das Element außerhalb des sichtbaren Bereichs zu positionieren
- display: none; Das Element wird unsichtbar und nimmt keinen Platz mehr im Dokument ein.
- transform: scale(0); Stellen Sie ein Element auf eine unendlich kleine Skalierung ein, das Element wird unsichtbar und die ursprüngliche Position des Elements bleibt erhalten
HTML5-Attribut, der Effekt ist der gleiche wie display:none;, aber dieses Attribut wird verwendet, um den Status eines Elements aufzuzeichnen
<p hidden="hidden">
- height: 0; Setzen Sie die Höhe des Elements auf 0 und entfernen Sie den Rand
- filter: Blur(0); CSS3-Attribut, setzen Sie die Unschärfe eines Elements auf 0, wodurch das Element „verschwindet“. " von der Seite
Was ist der Unterschied zwischen den Transparenzeffekten von rgba() und der Opazität?
- Deckkraft gilt für das Element und alle Inhalte innerhalb des Elements (einschließlich Text).
- rgba() gilt nur für Element Seine eigene Farbe oder seine Hintergrundfarbe, untergeordnete Elemente erben den Transparenzeffekt nicht
Was macht der Inhalt des CSS-Attributs?
- Das Inhaltsattribut wird speziell auf Vorher/Nachher-Pseudoelemente angewendet, um zusätzliche Inhalte oder Stile einzufügen
CSS3 Was sind die neuen Funktionen?
- Neuer Selektor p:nth-child(n){color: rgba(255, 0, 0, 0.75)}
- Flexible Box-Modellanzeige: Flex;
- Mehrspaltiges Layout, Spaltenanzahl: 5;
- Medienabfrage @media (maximale Breite: 480px) {.box: {column-count: 1;}}
- Personalisierte Schriftart @font-face{font-family: BorderWeb; src:url(BORDERW0.eot );}
- Farbtransparenzfarbe: rgba(255, 0, 0, 0,75);
- Randradius der abgerundeten Ecken: 5px
- Hintergrund mit Farbverlauf:linear-gradient(red, green, blue);
- Shadow box-shadow:3px 3px 3px rgba(0, 64, 128 , 0,3);
- Reflection box-reflect: unter 2px;
文字装饰 text-stroke-color: red;
文字溢出 text-overflow:ellipsis;
背景效果 background-size: 100px 100px;
边框效果 border-image:url(bt_blue.png) 0 10;
转换
旋转 transform: rotate(20deg);
倾斜 transform: skew(150deg, -10deg);
位移 transform: translate(20px, 20px);
缩放 transform: scale(.5);
平滑过渡 transition: all .3s ease-in .1s;
动画 @keyframes anim-1 {50% {border-radius: 50%;}} animation: anim-1 1s;
请解释一下 CSS3 的 Flexbox(弹性盒布局模型)以及适用场景?
Flexbox 用于不同尺寸屏幕中创建可自动扩展和收缩布局
经常遇到的浏览器的JS兼容性有哪些?解决方法是什么?
当前样式:getComputedStyle(el, null) VS el.currentStyle
事件对象:e VS window.event
鼠标坐标:e.pageX, e.pageY VS window.event.x, window.event.y
按键码:e.which VS event.keyCode
文本节点:el.textContent VS el.innerText
请写出多种等高布局
在列的父元素上使用这个背景图进行Y轴的铺放,从而实现一种等高列的假像
模仿表格布局等高列效果:兼容性不好,在ie6-7无法正常运行
css3 flexbox 布局: .container{display: flex; align-items: stretch;}
css垂直居中的方法有哪些?
如果是单行文本, line-height 设置成和 height 值
.vertical { height: 100px; line-height: 100px; }
已知高度的块级子元素,采用绝对定位和负边距
.container { position: relative; } .vertical { height: 300px; /*子元素高度*/ position: absolute; top:50%; /*父元素高度50%*/ margin-top: -150px; /*自身高度一半*/ }
未知高度的块级父子元素居中,模拟表格布局
缺点:IE67不兼容,父级 overflow:hidden 失效
.container { display: table; } .content { display: table-cell; vertical-align: middle; }
新增 inline-block 兄弟元素,设置 vertical-align
缺点:需要增加额外标签,IE67不兼容
.container { height: 100%;/*定义父级高度,作为参考*/ } .extra .vertical{ display: inline-block; /*行内块显示*/ vertical-align: middle; /*垂直居中*/ } .extra { height: 100%; /*设置新增元素高度为100%*/ }
绝对定位配合 CSS3 位移
.vertical { position: absolute; top:50%; /*父元素高度50%*/ transform:translateY(-50%, -50%); }
CSS3弹性盒模型
.container { display:flex; justify-content: center; /*子元素水平居中*/ align-items: center; /*子元素垂直居中*/ }
圣杯布局的实现原理?
要求:三列布局;中间主体内容前置,且宽度自适应;两边内容定宽
好处:重要的内容放在文档流前面可以优先渲染
原理:利用相对定位、浮动、负边距布局,而不添加额外标签
.container { padding-left: 150px; padding-right: 190px; } .main { float: left; width: 100%; } .left { float: left; width: 190px; margin-left: -100%; position: relative; left: -150px; } .right { float: left; width: 190px; margin-left: -190px; position: relative; right: -190px; }
什么是双飞翼布局?实现原理?
双飞翼布局:对圣杯布局(使用相对定位,对以后布局有局限性)的改进,消除相对定位布局
原理:主体元素上设置左右边距,预留两翼位置。左右两栏使用浮动和负边距归位,消除相对定位。
.container { /*padding-left:150px;*/ /*padding-right:190px;*/ } .main-wrap { width: 100%; float: left; } .main { margin-left: 150px; margin-right: 190px; } .left { float: left; width: 150px; margin-left: -100%; /*position: relative;*/ /*left:-150px;*/ } .right { float: left; width: 190px; margin-left: -190px; /*position:relative;*/ /*right:-190px;*/ }
在CSS样式中常使用 px、em 在表现上有什么区别?
px 相对于显示器屏幕分辨率,无法用浏览器字体放大功能
em 值并不是固定的,会继承父级的字体大小: em = 像素值 / 父级font-size
解释下什么是浮动和它的工作原理?
非IE浏览器下,容器不设高度且子元素浮动时,容器高度不能被内容撑开。
此时,内容会溢出到容器外面而影响布局。这种现象被称为浮动(溢出)。
工作原理:
浮动元素脱离文档流,不占据空间(引起“高度塌陷”现象)
浮动元素碰到包含它的边框或者其他浮动元素的边框停留
浮动元素引起的问题?
父元素的高度无法被撑开,影响与父元素同级的元素
与浮动元素同级的非浮动元素会跟随其后
列举几种清除浮动的方式?
添加额外标签,例如
<p style="clear:both"></p>
使用 br 标签和其自身的 clear 属性,例如
<br clear="all" />
父元素设置 overflow:hidden; 在IE6中还需要触发 hasLayout,例如zoom:1;
父元素也设置浮动
使用 :after 伪元素。由于IE6-7不支持 :after,使用 zoom:1 触发 hasLayout
清除浮动最佳实践(after伪元素闭合浮动):
.clearfix:after{ content: "\200B"; display: table; height: 0; clear: both; } .clearfix{ *zoom: 1; }
什么是 FOUC(Flash of Unstyled Content)? 如何来避免 FOUC?
当使用 @import 导入 CSS 时,会导致某些页面在 IE 出现奇怪的现象:
没有样式的页面内容显示瞬间闪烁,这种现象称为“文档样式短暂失效”,简称为FOUC
产生原因:当样式表晚于结构性html加载时,加载到此样式表时,页面将停止之前的渲染。
等待此样式表被下载和解析后,再重新渲染页面,期间导致短暂的花屏现象。
解决方法:使用 link 标签将样式表放在文档 head
介绍使用过的 CSS 预处理器?
CSS 预处理器基本思想:为 CSS 增加了一些编程的特性(变量、逻辑判断、函数等)
开发者使用这种语言进行进行 Web 页面样式设计,再编译成正常的 CSS 文件使用
使用 CSS 预处理器,可以使 CSS 更加简洁、适应性更强、可读性更佳,无需考虑兼容性
最常用的 CSS 预处理器语言包括:Sass(SCSS)和 LESS
CSS优化、提高性能的方法有哪些?
多个css合并,尽量减少HTTP请求
将css文件放在页面最上面
移除空的css规则
避免使用CSS表达式
选择器优化嵌套,尽量避免层级过深
充分利用css继承属性,减少代码量
抽象提取公共样式,减少代码量
属性值为0时,不加单位
属性值为小于1的小数时,省略小数点前面的0
css雪碧图
浏览器是怎样解析CSS选择器的?
浏览器解析 CSS 选择器的方式是从右到左
在网页中的应该使用奇数还是偶数的字体?
在网页中的应该使用“偶数”字体:
偶数字号相对更容易和 web 设计的其他部分构成比例关系
使用奇数号字体时文本段落无法对齐
宋体的中文网页排布中使用最多的就是 12 和 14
margin和padding分别适合什么场景使用?
需要在border外侧添加空白,且空白处不需要背景(色)时,使用 margin
需要在border内测添加空白,且空白处需要背景(色)时,使用 padding
抽离样式模块怎么写,说出思路?
CSS可以拆分成2部分:公共CSS 和 业务CSS:
网站的配色,字体,交互提取出为公共CSS。这部分CSS命名不应涉及具体的业务
对于业务CSS,需要有统一的命名,使用公用的前缀。可以参考面向对象的CSS
元素竖向的百分比设定是相对于容器的高度吗?
元素竖向的百分比设定是相对于容器的宽度,而不是高度
全屏滚动的原理是什么? 用到了CSS的那些属性?
原理类似图片轮播原理,超出隐藏部分,滚动时显示
可能用到的CSS属性:overflow:hidden; transform:translate(100%, 100%); display:none;
什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?
响应式设计就是网站能够兼容多个终端,而不是为每个终端做一个特定的版本
基本原理是利用CSS3媒体查询,为不同尺寸的设备适配不同样式
对于低版本的IE,可采用JS获取屏幕宽度,然后通过resize方法来实现兼容:
$(window).resize(function () { screenRespond(); }); screenRespond(); function screenRespond(){ var screenWidth = $(window).width(); if(screenWidth <= 1800){ $("body").attr("class", "w1800"); } if(screenWidth <= 1400){ $("body").attr("class", "w1400"); } if(screenWidth > 1800){ $("body").attr("class", ""); } }
什么是视差滚动效果,如何给每页做不同的动画?
视差滚动是指多层背景以不同的速度移动,形成立体的运动效果,具有非常出色的视觉体验
一般把网页解剖为:背景层、内容层和悬浮层。当滚动鼠标滚轮时,各图层以不同速度移动,形成视差的
实现原理
以 “页面滚动条” 作为 “视差动画进度条”
以 “滚轮刻度” 当作 “动画帧度” 去播放动画的
监听 mousewheel 事件,事件被触发即播放动画,实现“翻页”效果
L-V-H-A love hate 用喜欢和讨厌两个词来方便记忆
伪元素 -- 在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。
它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。例如:
a标签上四个伪类的执行顺序是怎么样的?
link > visited > hover > active
伪元素和伪类的区别和作用?
p::before {content:"第一章:";} p::after {content:"Hot!";} p::first-line {background:red;} p::first-letter {font-size:30px;}
伪类 -- 将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。例如:
a:hover {color: #FF00FF} p:first-child {color: red}
::before 和 :after 中双冒号和单冒号有什么区别?
在 CSS 中伪类一直用 : 表示,如 :hover, :active 等
伪元素在CSS1中已存在,当时语法是用 : 表示,如 :before 和 :after
后来在CSS3中修订,伪元素用 :: 表示,如 ::before 和 ::after,以此区分伪元素和伪类
由于低版本IE对双冒号不兼容,开发者为了兼容性各浏览器,继续使使用 :after 这种老语法表示伪元素
综上所述:::before 是 CSS3 中写伪元素的新语法; :after 是 CSS1 中存在的、兼容IE的老语法
如何修改Chrome记住密码后自动填充表单的黄色背景?
产生原因:由于Chrome默认会给自动填充的input表单加上 input:-webkit-autofill 私有属性造成的
解决方案1:在form标签上直接关闭了表单的自动填充:autocomplete="off"
解决方案2:input:-webkit-autofill { background-color: transparent; }
input [type=search] 搜索框右侧小图标如何美化?
input[type="search"]::-webkit-search-cancel-button{ -webkit-appearance: none; height: 15px; width: 15px; border-radius: 8px; background:url("images/searchicon.png") no-repeat 0 0; background-size: 15px 15px; }
网站图片文件,如何点击下载?而非点击预览?
<a href="logo.jpg" download>下载</a>
<a href="logo.jpg" download="网站LOGO" >下载</a>
iOS safari 如何阻止“橡皮筋效果”?
$(document).ready(function(){ var stopScrolling = function(event) { event.preventDefault(); } document.addEventListener('touchstart', stopScrolling, false); document.addEventListener('touchmove', stopScrolling, false); });
你对 line-height 是如何理解的?
line-height 指一行字的高度,包含了字间距,实际上是下一行基线到上一行基线距离
如果一个标签没有定义 height 属性,那么其最终表现的高度是由 line-height 决定的
一个容器没有设置高度,那么撑开容器高度的是 line-height 而不是容器内的文字内容
把 line-height 值设置为 height 一样大小的值可以实现单行文字的垂直居中
line-height 和 height 都能撑开一个高度,height 会触发 haslayout,而 line-height 不会
line-height 三种赋值方式有何区别?(带单位、纯数字、百分比)
带单位:px 是固定值,而 em 会参考父元素 font-size 值计算自身的行高
纯数字:会把比例传递给后代。例如,父级行高为 1.5,子元素字体为 18px,则子元素行高为 1.5 * 18 = 27px
百分比:将计算后的值传递给后代
设置元素浮动后,该元素的 display 值会如何变化?
设置元素浮动后,该元素的 display 值自动变成 block
怎么让Chrome支持小于12px 的文字?
.shrink{ -webkit-transform:scale(0.8); -o-transform:scale(1); display:inline-block; }
让页面里的字体变清晰,变细用CSS怎么做?(IOS手机浏览器字体齿轮设置)
-webkit-font-smoothing: antialiased;
font-style 属性 oblique 是什么意思?
font-style: oblique; 使没有 italic 属性的文字实现倾斜
如果需要手动写动画,你认为最小时间间隔是多久?
16.7ms 多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔: 1s / 60 * 1000 = 16.7ms
display:inline-block 什么时候会显示间隙?
Wenn es einen Zeilenumbruch oder eine Leerzeichentrennung zwischen benachbarten Inline-Block-Elementen gibt, entsteht eine Lücke.
Nicht-Inline-Block-horizontale Elemente werden festgelegt to inline -block hat auch horizontale Abstände
Sie können Vertical-Align:top; verwenden, um vertikale Lücken zu beseitigen
Sie können Schriftart hinzufügen -size zum übergeordneten Element :0; Legen Sie die erforderliche Schriftgröße im untergeordneten Element fest, um die vertikale Lücke zu beseitigen
Das Schreiben des li-Tags in dieselbe Zeile kann die vertikale Lücke beseitigen, aber das Codelesbarkeit ist schlecht
Überlauf: Wie kann das Problem des reibungslosen Scrollens beim Scrollen gelöst werden?
Hören Sie sich das Radereignis an und verwenden Sie dann die Animation von jquery, um beim Scrollen bis zu einer bestimmten Entfernung einen reibungslosen Effekt zu erzielen.
Ein höhenadaptives p mit zwei ps im Inneren, eines mit einer Höhe von 100 Pixeln, und ich hoffe, das andere füllt die verbleibende Höhe aus
Option 1:
.sub { height: calc(100%-100px); }
Option 2:
.container { position:relative; }
.sub { position: absolute; top: 100px; bottom: 0; }
-
Option 3:
.container { display:flex; flex-direction:column; }
.sub { flex:1; }
Ich glaube dir Lesen Sie diesen Artikel. Sie beherrschen die Fallmethode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
-
Detaillierte Erläuterung der Schritte zur Verwendung von React-router v4
Das obige ist der detaillierte Inhalt vonAnalyse echter Front-End-Interviewfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Eingehende Analyse der Rolle und Anwendungsszenarien des HTTP-Statuscodes 460. Der HTTP-Statuscode ist ein sehr wichtiger Teil der Webentwicklung und wird verwendet, um den Kommunikationsstatus zwischen Client und Server anzuzeigen. Unter diesen ist der HTTP-Statuscode 460 ein relativ spezieller Statuscode. In diesem Artikel werden seine Rolle und Anwendungsszenarien eingehend analysiert. Definition des HTTP-Statuscodes 460 Die spezifische Definition des HTTP-Statuscodes 460 lautet „ClientClosedRequest“, was bedeutet, dass der Client die Anfrage schließt. Dieser Statuscode wird hauptsächlich zur Anzeige verwendet

iBatis und MyBatis: Analyse der Unterschiede und Vorteile Einführung: In der Java-Entwicklung ist Persistenz eine häufige Anforderung, und iBatis und MyBatis sind zwei weit verbreitete Persistenz-Frameworks. Obwohl sie viele Gemeinsamkeiten aufweisen, gibt es auch einige wesentliche Unterschiede und Vorteile. Dieser Artikel vermittelt den Lesern ein umfassenderes Verständnis durch eine detaillierte Analyse der Funktionen, der Verwendung und des Beispielcodes dieser beiden Frameworks. 1. iBatis-Funktionen: iBatis ist ein älteres Persistenz-Framework, das SQL-Zuordnungsdateien verwendet.

Ausführliche Erklärung des Oracle-Fehlers 3114: Um ihn schnell zu beheben, sind spezifische Codebeispiele erforderlich. Bei der Entwicklung und Verwaltung von Oracle-Datenbanken stoßen wir häufig auf verschiedene Fehler, unter denen Fehler 3114 ein relativ häufiges Problem ist. Fehler 3114 weist normalerweise auf ein Problem mit der Datenbankverbindung hin, das durch einen Netzwerkfehler, einen Stopp des Datenbankdienstes oder falsche Einstellungen der Verbindungszeichenfolge verursacht werden kann. In diesem Artikel wird die Ursache des Fehlers 3114 ausführlich erläutert und wie dieses Problem schnell gelöst werden kann. Außerdem wird der spezifische Code angehängt

[Analyse der Bedeutung und Verwendung von Mittelpunkt in PHP] In PHP ist Mittelpunkt (.) ein häufig verwendeter Operator, der zum Verbinden zweier Zeichenfolgen oder Eigenschaften oder Methoden von Objekten verwendet wird. In diesem Artikel befassen wir uns eingehend mit der Bedeutung und Verwendung von Mittelpunkten in PHP und veranschaulichen sie anhand konkreter Codebeispiele. 1. String-Mittelpunkt-Operator verbinden Die häufigste Verwendung in PHP ist das Verbinden zweier Strings. Indem Sie . zwischen zwei Saiten platzieren, können Sie diese zu einer neuen Saite zusammenfügen. $string1=&qu

Wormhole ist führend in der Blockchain-Interoperabilität und konzentriert sich auf die Schaffung robuster, zukunftssicherer dezentraler Systeme, bei denen Eigentum, Kontrolle und erlaubnislose Innovation im Vordergrund stehen. Die Grundlage dieser Vision ist das Bekenntnis zu technischem Fachwissen, ethischen Grundsätzen und Community-Ausrichtung, um die Interoperabilitätslandschaft mit Einfachheit, Klarheit und einer breiten Palette von Multi-Chain-Lösungen neu zu definieren. Mit dem Aufkommen wissensfreier Nachweise, Skalierungslösungen und funktionsreicher Token-Standards werden Blockchains immer leistungsfähiger und Interoperabilität wird immer wichtiger. In dieser innovativen Anwendungsumgebung eröffnen neuartige Governance-Systeme und praktische Funktionen beispiellose Möglichkeiten für Assets im gesamten Netzwerk. Protokollentwickler setzen sich nun mit der Frage auseinander, wie sie in dieser aufstrebenden Multi-Chain agieren sollen

Analyse der neuen Funktionen von Win11: So überspringen Sie die Anmeldung bei einem Microsoft-Konto. Mit der Veröffentlichung von Windows 11 haben viele Benutzer festgestellt, dass es mehr Komfort und neue Funktionen bietet. Einige Benutzer möchten jedoch möglicherweise nicht, dass ihr System an ein Microsoft-Konto gebunden ist, und möchten diesen Schritt überspringen. In diesem Artikel werden einige Methoden vorgestellt, mit denen Benutzer die Anmeldung bei einem Microsoft-Konto in Windows 11 überspringen können, um ein privateres und autonomeres Erlebnis zu erreichen. Lassen Sie uns zunächst verstehen, warum einige Benutzer zögern, sich bei ihrem Microsoft-Konto anzumelden. Einerseits befürchten einige Benutzer, dass sie

Detaillierte Analyse und Beispiele von Exponentialfunktionen in der C-Sprache Einführung: Die Exponentialfunktion ist eine gängige mathematische Funktion, und es gibt entsprechende Bibliotheksfunktionen für Exponentialfunktionen, die in der C-Sprache verwendet werden können. In diesem Artikel wird die Verwendung von Exponentialfunktionen in der C-Sprache, einschließlich Funktionsprototypen, Parametern, Rückgabewerten usw., detailliert analysiert und spezifische Codebeispiele gegeben, damit die Leser Exponentialfunktionen besser verstehen und verwenden können. Text: Die Exponentialfunktionsbibliothek function math.h in der C-Sprache enthält viele Funktionen im Zusammenhang mit Exponentialfunktionen, von denen die exp-Funktion am häufigsten verwendet wird. Der Prototyp der exp-Funktion ist wie folgt

Aus Platzgründen folgt hier ein kurzer Artikel: Apache2 ist eine häufig verwendete Webserver-Software und PHP ist eine weit verbreitete serverseitige Skriptsprache. Beim Erstellen einer Website stößt man manchmal auf das Problem, dass Apache2 die PHP-Datei nicht korrekt analysieren kann, was dazu führt, dass der PHP-Code nicht ausgeführt werden kann. Dieses Problem wird normalerweise dadurch verursacht, dass Apache2 das PHP-Modul nicht richtig konfiguriert oder das PHP-Modul nicht mit der Version von Apache2 kompatibel ist. Im Allgemeinen gibt es zwei Möglichkeiten, dieses Problem zu lösen: Die eine ist
