実際のフロントエンド面接の質問の分析
今回は、実際のフロントエンド面接の質問の分析についてお届けします。実際のフロントエンド面接の質問を分析する際の注意点は何ですか?実際のケースを見てみましょう。
フロントエンドインタビュー用のCSS
display: none;とvisibility: hidden;
Contactの違い: どちらも要素を非表示にすることができます
- 違い:
-
display :none
;visibility:hidden
を指定すると、要素はレンダリング ツリーから完全に消えます。 、レンダラー要素はスペースを占有し続けますが、コンテンツは非表示になりますdisplay:none
;会让元素完全从渲染树中消失,渲染的时候不占据任何空间;visibility: hidden
;不会让元素从渲染树消失,渲染师元素继续占据空间,只是内容不可见 display: none
;是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示;visibility:hidden
;是继承属性,子孙节点消失由于继承了hidden
,通过设置visibility: visible
;可以让子孙节点显式修改常规流中元素的
display
通常会造成文档重排。修改visibility
属性只会造成本元素的重绘读屏器不会读取
display: none;
元素内容;会读取visibility: hidden
元素内容
css hack原理及常用hack
原理:利用不同浏览器对CSS的支持和解析结果不一样编写针对特定浏览器样式。
常见的hack有
属性hack
选择器hack
IE条件注释
link 与 @import 的区别
link
是HTML
方式,@import
是CSS
方式link
最大限度支持并行下载,@import
过多嵌套导致串行下载,出现FOUClink
可以通过rel="alternate stylesheet"
指定候选样式浏览器对
link
支持早于@import
,可以使用@import
对老浏览器隐藏样式@import
必须在样式规则之前,可以在css
文件中引用其他文件总体来说:
link
优于@import
CSS有哪些继承属性
关于文字排版的属性如:
word-break
letter-spacing
text-align
text-rendering
word-spacing
white-space
text-indent
text-transform
text-shadow
font
line-height
color
visibility
cursor
外边距折叠(collapsing margins)
毗邻的两个或多个
margin
会合并成一个margin
,叫做外边距折叠。规则如下:两个或多个毗邻的普通流中的块元素垂直方向上的
margin
会折叠-
浮动元素或
🎜inline-block
元素或绝对定位元素的margin
display: none
; 子孫ノードの消滅は、 の消滅によって引き起こされます。レンダリング ツリーから要素を削除します。子孫ノードの属性を変更することによっては表示できません。visibility:hidden
は、hidden
を継承するため、消えます。visibility:visible
; を設定することで、子孫ノードは通常のフローdisplay
要素を明示的に変更できます。通常、ドキュメントのリフローが発生します。visibility
属性を変更すると、要素が再描画されるだけです🎜🎜🎜🎜 スクリーン リーダーは、display: none;
要素の内容を読み取りません。 code>visibility : hidden 要素の内容🎜🎜
link
は HTML
メソッド、@import
は CSS
メソッドです🎜🎜🎜🎜link
code> は、 の並列ダウンロードを最大限にサポートします。 > @import
ネストが多すぎるとシリアルダウンロードが発生し、FOUC🎜🎜🎜🎜link
を渡すことができます。rel="alternate stylesheet "
は候補スタイルを指定します 🎜🎜 🎜🎜ブラウザは、 @import
よりも前の link
をサポートしています。古いブラウザでは @import
を使用できます。ツールはスタイルを非表示にします🎜🎜🎜🎜@import
はスタイル ルールの前になければなりません。また、他のファイルは css
ファイルで参照できます🎜🎜🎜🎜 一般に、link
は @import🎜🎜🎜🎜 CSS にはどのような継承プロパティがありますか? 🎜🎜🎜🎜letter-spacing
🎜🎜🎜🎜text-整列
🎜🎜🎜🎜テキストレンダリング
🎜🎜🎜🎜 単語間隔
🎜🎜🎜🎜空白
🎜🎜🎜 🎜text-indent
🎜🎜🎜🎜text-transform code>🎜🎜🎜🎜<code>text-shadow
🎜🎜🎜🎜font
🎜🎜🎜🎜行の高さ
🎜🎜🎜🎜color
🎜🎜🎜🎜visibility
🎜🎜🎜🎜cursor
🎜🎜🎜🎜マージンの縮小🎜🎜🎜 🎜🎜2 つ以上の隣接する margin
は、マージンと呼ばれる 1 つの margin
にマージされます崩壊。ルールは次のとおりです: 🎜🎜🎜🎜🎜 通常のフロー内の 2 つ以上の隣接するブロック要素の垂直方向の margin
は崩壊します 🎜🎜🎜🎜 浮動要素または inline-block
code> 要素の margin
または絶対位置の要素は、垂直方向の他の要素のマージンと一緒に折りたたまれません🎜ブロックレベルの書式設定コンテキストを作成する要素には、その子要素とのマージン折りたたみがありません
要素の margin-bottom
と margin-top
それ自体 >隣接するときも折りたたまれます margin-bottom
和margin-top
相邻时也会折
介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?
有两种, IE 盒子模型、W3C 盒子模型;
盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border);
区 别: IE的content部分把 border 和 padding计算了进去;
CSS选择符有哪些?哪些属性可以继承?
id选择器( # myid)
类选择器(.myclassname)
标签选择器(p, h1, p)
相邻选择器(h1 + p)
子选择器(ul > li)
后代选择器(li a)
通配符选择器( * )
属性选择器(a[rel = "external"])
伪类选择器(a:hover, li:nth-child)
可继承的样式:
font-size font-family color, UL LI DL DD DT
不可继承的样式:
border padding margin width height
CSS优先级算法如何计算?
优先级就近原则,同权重情况下样式定义最近者为准
载入样式以最后载入的定位为准
优先级为:
!important > id > class > tag
important 比 内联优先级高
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 单选框或复选框被选中
如何居中p?如何居中一个浮动元素?如何让绝对定位的p居中?
给
p
设置一个宽度,然后添加margin:0 auto
- 標準 CSS ボックス モデルを導入しますか? IE の下位バージョンのボックス モデルの違いは何ですか?
- IE ボックス モデルと W3C ボックス モデルの 2 つのタイプがあります。
- ボックス モデル: コンテンツ、パディング、マージン、ボーダー
違い: IE のコンテンツ部分はボーダーとパディングを考慮します。 ;
- CSS セレクターとは何ですか?どのようなプロパティを継承できますか?
- IDセレクター(#myid)
- クラスセレクター(.myclassname)
- タグ セレクター (p, h1, p)
- 隣接セレクター (h1 + p)
- 子セレクター (ul > li)
子孫セレクター (li a)
ワイルドカード セレクター (*)
- 属性セレクター (a[rel = "external"])
- 継承可能なスタイル:
-
非継承スタイル:
border padding margin width height code>
- CSS優先度アルゴリズムを計算するにはどうすればよいですか?
- 優先順位の原則、同じ重み条件では最も近いスタイル定義が優先されます
-
読み込みスタイルは最後に読み込まれた位置に従うものとします
🎜🎜🎜優先順位は次のとおりです: !重要 > > クラス > タグ
font-size font-family color, UL LI DL DD DT
p{ width:200px; margin:0 auto; }
p
に設定し、margin:0 auto
属性を追加します🎜🎜🎜//确定容器的宽高 宽500 高 300 的层 //设置层的外边距 .p { width:500px ; height:300px;//高度可以不设 margin: -150px 0 0 -250px; position:relative; //相对定位 background-color:pink; //方便看效果 left:50%; top:50%; }
position: absolute; width: 1200px; background: none; margin: 0 auto; top: 0; left: 0; bottom: 0; right: 0;
// 把上、左、右三条边隐藏掉(颜色设为 transparent) #demo { width: 0; height: 0; border-width: 20px; border-style: solid; border-color: transparent transparent red transparent; }
默认值。没有定位,元素出现在正常的流中(忽略 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 什么时候会显示间隙?(携程)
スペースの削除、負のマージンの使用、font-size:0、letter-spacing、word-spacingの使用
フロートとフロートのクリアについて説明します
フロートボックスは左または左に移動できます外側の端が、含まれているボックスまたは別のフローティング ボックスの境界に触れるまで右に移動します。フローティング ボックスはドキュメントの通常のフローにないため、ドキュメントの通常のフローのブロック ボックスは、フローティング ボックスが存在しないかのように動作します。フローティング ブロック ボックスは、ドキュメントの通常のフローのブロック ボックス上にフローティングします
標準の CSS ボックス モデルを導入しますか? IE の下位バージョンのボックス モデルの違いは何ですか?
ボックスモデルの構成: コンテンツ、パディング、ボーダー、マージン
IE8以下のブラウザではDOCTYPEが宣言されていないため、コンテンツの幅と高さが異なります 奇妙なものと呼ばれる内部パディングとボーダーが含まれていますボックス モデル (IE ボックス モデル)
標準 (W3C) ボックス モデル: 要素の幅 = width + padding + border + margin
奇妙な (IE) ボックス モデル: 要素の幅 = width + margin
標準ブラウザは、CSS3 の box-sizing: border-box 属性を設定することで、「奇妙なモード」の解析と幅と高さの計算をトリガーします
box-sizing の一般的に使用される属性は何ですか?それぞれの機能は何ですか?
- box-sizing: content-box; // デフォルト標準 (W3C) ボックス モデル要素の効果
- box-sizing: border-box; // 奇妙な (IE) ボックス モデル要素の効果をトリガーします
- box-sizing:inherit; // 親要素の box-sizing 属性の値を継承します
CSS セレクターとは何ですか? :
サブセレクター li- 子孫セレクター li a
-
- 属性セレクター a[rel='external']
- 擬似-class selector a:hover, li: nth -child
- どのような CSS プロパティを継承できますか?継承できないプロパティはどれですか?
- 継承可能なスタイル: フォントサイズ、フォントファミリー、カラー、リストスタイル、カーソル
- 継承できないスタイル: 幅、高さ、境界線、パディング、マージン、背景
CSS はセレクターの優先順位を計算しますか?
最も近い定義を持つものが優先されます: インラインスタイル > 内部スタイル > 外部スタイル
- 外部からロードされたスタイルが含まれる場合、後でロードされたスタイルが以前にロードされたスタイルと内部スタイルをオーバーライドします
- セレクターの優先度: Inline style[1000] > id[100] > class[10] > 属性設定の中で、! important が最も高い優先度を持ちます。インラインスタイルの擬似クラス
CSS3?
- :root HTML要素に相当するドキュメントのルート要素を選択します
- :empty 子要素のない要素を選択します
- :target 現在アクティブなターゲット要素を選択します
- :not(selector) セレクター要素以外の要素を選択します
:disabled 無効なフォーム要素を選択します
- :checked 選択されたフォーム要素を選択します
- :内要素 最初にコンテンツを追加します 在: 最終的に要素内にコンテンツを追加する前に
- : NTH-Child (n) は親要素の下にある指定された要素と一致し、NTH-Last-Child (n N ) 内のすべてのサブ要素でソートされます 指定された子要素と一致します親要素の下で、後ろから前に数えて、すべての子要素の中から n 番目の子要素を並べ替えます
- :nth-child(odd)
- :nth-child(even)
- : nth-child (3n+1)
- :first-child
- :last-child
- :only-child
- :nth-of-type(n) 親要素で指定された一致 子要素、n 番目でソートされます
- :nth-last-of-type(n) は、親要素の下にある指定された子要素と一致します、同様の子要素間で後ろから前に数えて n 番目でソートされます
- :nth -of-type(奇数)
- :nth-of-type(even)
- :nth-of-type(3n+1)
- :first-of-type
- : last-of-type
- :only-of-type
- ::selection ユーザーが選択した要素を選択
- :first-line 要素の最初の行を選択
- :first -letter 要素の最初の文字を選択します
- 要素を非表示にする方法をいくつか挙げてください
不透明度: 0; CSS3 プロパティ、0 を設定すると要素を完全に透明にすることができます
- 要素を表示領域の外側に配置するには、大きな左の負の位置を設定します
- 要素は非表示になります。文書内のスペースを占有することはなくなります。
- transform:scale(0); 要素を無限に小さくスケールするように設定すると、要素は非表示になり、要素の元の位置が保持されます
- HTML5 属性、効果は表示と同じです:none; ですが、この属性は要素のステータスを記録するために使用されます
- height: 0; 要素の高さを 0 に設定し、境界線を削除します
-
ので、この要素はページから「消えます」<p hidden="hidden">
- rgba() の透明効果と opacity の違いは何ですか?
rgba() は要素自体の色またはその背景色にのみ作用し、子要素は要素を継承しません透明効果
- CSS3 の新機能は何ですか?
フレックスボックスモデル表示: flex;
- 複数列レイアウト列 - count: 5;
- メディアクエリ @media (max-width: 480px) {.box: {column-count: 1;}}
- パーソナライズされたフォント @font-face{font-family: BorderWeb ; :url(BORDERW0.eot);}
- カラー透明度カラー: rgba(255, 0, 0, 0.75);
- 角丸ボーダー半径: 5px;
- グラデーション背景:linear -gradient (赤、緑、青);
- shadow box-shadow:3px 3px 3px rgba(0, 64, 128, 0.3);
- reflection box-reflect: 以下 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 什么时候会显示间隙?
隣接するインラインブロック要素が改行またはスペースで区切られている場合、
-
インラインブロックに設定されている場合、非インラインブロックの水平要素にも水平方向のスペースが生じます。
vertical -align:top; を使用して垂直方向のギャップを排除します - 親要素に font-size: 0 を追加して、垂直方向のギャップを排除することができます
- li タグを記述します縦の隙間をなくすために同じ行に隙間がありますが、コードの可読性は悪いです
- overflow: スクロール時にスムーズにスクロールできない問題に対処するにはどうすればよいですか?
スクロール ホイール イベントをリッスンし、jquery のアニメーションを使用して、一定の距離までスクロールするときにスムーズな効果を実現します。
- 内部に 2 つの ps を含む高さ適応 p で、1 つは高さ 100px で、もう 1 つは残りの高さを埋めることを願っています
オプション 1:
.sub { height: calc(100%-100px); }
方案2:
.container { position:relative; }
.sub { position: absolute; top: 100px; bottom: 0; }
-
方案3:
.container { display:flex; flex-direction:column; }
.sub { flex:1; }
オプション 2:.container {position:relative; }
.sub {position:absolute;ボトム : 0; }
オプション 3: -
.sub { flex:1 }
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
.sub { height: calc ( 100%-100px); }
.container {display:flex; }
以上が実際のフロントエンド面接の質問の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HTTP ステータス コード 460 の役割とアプリケーション シナリオの詳細な分析 HTTP ステータス コードは Web 開発の非常に重要な部分であり、クライアントとサーバー間の通信ステータスを示すために使用されます。その中でも、HTTP ステータス コード 460 は比較的特殊なステータス コードであり、この記事ではその役割と適用シナリオを詳しく分析します。 HTTP ステータス コード 460 の定義 HTTP ステータス コード 460 の具体的な定義は「ClientClosedRequest」です。これは、クライアントがリクエストを閉じたことを意味します。このステータス コードは主に次のことを示すために使用されます。

iBatis と MyBatis: 違いと利点の分析 はじめに: Java 開発では永続性が一般的な要件であり、iBatis と MyBatis は広く使用されている 2 つの永続性フレームワークです。これらには多くの類似点がありますが、いくつかの重要な違いと利点もあります。この記事では、これら 2 つのフレームワークの機能、使用法、サンプル コードを詳細に分析することで、読者がより包括的に理解できるようにします。 1. iBatis の機能: iBatis は、SQL マッピング ファイルを使用する古い永続性フレームワークです。

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法、具体的なコード例が必要です Oracle データベースの開発および管理中に、さまざまなエラーが頻繁に発生しますが、その中でもエラー 3114 は比較的一般的な問題です。エラー 3114 は通常、データベース接続に問題があることを示します。これは、ネットワーク障害、データベース サービスの停止、または不適切な接続文字列設定が原因である可能性があります。この記事では、エラー 3114 の原因とこの問題を迅速に解決する方法を詳しく説明し、特定のコードを添付します

【PHPにおけるミッドポイントの意味と使い方の分析】 PHPでは、ミッドポイント(.)は2つの文字列やオブジェクトのプロパティやメソッドを接続するためによく使われる演算子です。この記事では、PHP における中間点の意味と使用法を詳しく掘り下げ、具体的なコード例を示して説明します。 1. 文字列中間点演算子の接続 PHP での最も一般的な使用法は、2 つの文字列を接続することです。 2 つの文字列の間に . を置くと、それらをつなぎ合わせて新しい文字列を形成できます。 $string1=&qu

Wormhole は、ブロックチェーンの相互運用性のリーダーであり、所有権、制御、許可のないイノベーションを優先する、回復力があり、将来性のある分散システムの作成に重点を置いています。このビジョンの基盤は、技術的専門知識、倫理原則、コミュニティの連携への取り組みであり、シンプルさ、明確さ、そして幅広いマルチチェーン ソリューションで相互運用性の状況を再定義します。ゼロ知識証明、スケーリング ソリューション、機能豊富なトークン標準の台頭により、ブロックチェーンはより強力になり、相互運用性の重要性がますます高まっています。この革新的なアプリケーション環境では、新しいガバナンス システムと実用的な機能が、ネットワーク全体の資産に前例のない機会をもたらします。プロトコル構築者は現在、この新たなマルチチェーンでどのように運用するかに取り組んでいます。

Win11 の新機能の分析: Microsoft アカウントへのログインをスキップする方法 Windows 11 のリリースにより、多くのユーザーは、Windows 11 がより便利で新しい機能をもたらしたことに気づきました。ただし、ユーザーによっては、自分のシステムが Microsoft アカウントに関連付けられることを好まず、この手順をスキップしたい場合があります。この記事では、ユーザーが Windows 11 で Microsoft アカウントへのログインをスキップし、よりプライベートで自律的なエクスペリエンスを実現するのに役立ついくつかの方法を紹介します。まず、一部のユーザーが Microsoft アカウントにログインすることに抵抗がある理由を理解しましょう。一方で、一部のユーザーは次のことを心配しています。

C 言語の指数関数の詳細な分析と例 はじめに: 指数関数は一般的な数学関数であり、C 言語で使用できる対応する指数関数ライブラリ関数があります。この記事では、関数プロトタイプ、パラメーター、戻り値などを含む C 言語での指数関数の使用法を詳細に分析し、読者が指数関数をより深く理解し使用できるように、具体的なコード例を示します。テキスト: C 言語の指数関数ライブラリ関数 math.h には、指数関数に関連する関数が多数含まれており、その中で最もよく使用される関数は exp 関数です。 exp関数のプロトタイプは以下のとおりです

JPAとは何ですか? JDBC との違いは何ですか? JPA (JavaPersistence API) は、オブジェクト リレーショナル マッピング (ORM) の標準インターフェイスです。これにより、Java 開発者は、データベースに対して SQL クエリを直接記述することなく、使い慣れた Java オブジェクトを使用してデータベースを操作できるようになります。 JDBC (JavaDatabaseConnectivity) は、データベースに接続するための Java の標準 API であり、開発者は SQL ステートメントを使用してデータベースを操作する必要があります。 JPA は JDBC をカプセル化し、オブジェクト リレーショナル マッピングのためのより便利で高レベルの API を提供し、データ アクセス操作を簡素化します。 JPA ではエンティティとは何ですか?実在物
