欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

web前端面试之CSS布局(码动未来)

发表日期:2018-12 文章编辑:小灯 浏览次数:1028

web前端面试之CSS布局(码动未来)

2.2.1、如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?

给div设置一个宽度,然后添加margin:0 auto属性

div{

    width:200px;

    margin:0 auto;

 }

居中一个浮动元素

确定容器的宽高宽500高 300 的层

设置层的外边距


相对定位的div居中:

 .div {

width:500px ; height:300px;//高度可以不设

      margin: -150px 0 0 -250px;

      position:relative;         

    background-color:pink;     //方便看效果

      left:50%;

      top:50%;

 }


让绝对定位的div居中:

 .div {

  position: absolute;

  width: 1200px;

  background: none;

  margin: 0 auto;

  top: 0;

  left: 0;

  bottom: 0;

  right: 0;

 }


2.2.2、display有哪些值?说明他们的作用。

block像块类型元素一样显示。

none缺省值。像行内元素类型一样显示。

inline-block像行内元素一样显示,但其内容像块类型元素一样显示。

list-item像块类型元素一样显示,并添加样式列表标记。

table此元素会作为块级表格来显示

inherit规定应该从父元素继承 display 属性的值


2.2.3、position的值relative和absolute定位原点是?

  absolute

生成绝对定位的元素,相对于值不为static的第一个父元素进行定位。

fixed(老IE不支持)

生成绝对定位的元素,相对于浏览器窗口进行定位。

  relative

生成相对定位的元素,相对于其正常位置进行定位。

  static

默认值。没有定位,元素出现在正常的流中(忽略top, bottom, left, right z-index声明)。

  inherit

规定从父元素继承position属性的值。


2.2.4、li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?

行框的排列会受到中间空白(回车\空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了。


2.2.5、请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式

浮动从何而来我们为何要清除浮动清除浮动的原理是什么http://www.bitscn.com/school/HTMLCSS/201312/284207.html

1)普通流:很多人或者文章称之为文档流或者普通文档流,其实标准里根本就没有这个词。如果把文档流直译为英文就是 document flow ,但标准里只有另一个词,叫做 普通流 (normal flow),或者称之为常规流。

2)浮动:浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘。浮动框不属于文档中的普通流,当一个元素浮动之后,不会影响到 块级框的布局而只会影响内联框(通常是文本)的排列,文档中的普通流就会表现得和浮动框不存在一样,当浮动框高度超出包含框的时候,也就会出现包含框不会自动伸高来闭合浮动元素。顾名思义,就是漂浮于普通流之上,像浮云一样,但是只能左右浮动。

正是因为浮动的这种特性,导致本属于普通流中的元素浮动之后,包含框内部由于不存在其他普通流元素了,也就表现出高度为0(高度塌陷)。在实际布局中,往往这并不是我们所希望的,所以需要清除浮动的元素,使其包含框表现出正常的高度。

清除浮动的方式:

1.使用空标签清除浮动。这种方法是在所有浮动标签后面添加一个空标签定义css clear:both.弊端就是增加了无意义标签。

2.使用overflow。给包含浮动元素的父标签添加css属性overflow:auto;zoom:1;zoom:1用于兼容IE6。

3.使用after伪对象清除浮动。该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。

一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;

二、content属性是必须的,但其值可以为空,content属性的值设为”.”,空亦是可以的。

4.浮动外部元素

此三种方法各有利弊,使用时应择优选择,比较之下第二种方法更为可取。


2.2.6、用纯CSS创建一个三角形的原理是什么?

把上、左、右三条边隐藏掉(颜色设为transparent)

#demo {

  width: 0;

  height: 0;

  border-width: 20px;

  border-style: solid;

  border-color: transparent transparent red transparent;

}


2.2.7、一个满屏‘品’字布局如何设计?

简单的方式:

上面的div宽100%,

下面的两个div分别宽50%,

然后用float或者inline使其不换行即可


2.2.8、在网页中的应该使用奇数还是偶数的字体?为什么呢?

偶数字体:

一、UI设计师的原因

多数设计师用的设计软件(如:ps)大多数都是偶数,所以前端工程师一般都是用偶数字体

二、浏览器的原因

其一是为了迁就ie6,万恶的ie6会把定义为13px的字渲染成14px,你可以写个页面试试

还有一个原因是,偶数宽的汉字,比如12px宽的汉字,去掉1像素的间距,填充了像素的实际宽是11px,这样汉字的中竖线左右是平分的,以“中”这个字为例,在12像素时,竖线在中间,左右各5像素,显得均衡。

其二像谷歌一些比较流行的浏览器一般会有个默认的最小字体,而且对奇数字体渲染的不太好看

三、实际应用

偶数字号相对更容易和web设计的其他部分构成比例关系。比如:当我用了 14 px 的正文字号,我可能会在一些地方用 14 × 0.5 = 7 px 的 margin,在另一些地方用 14 × 1.5 = 21 px 的标题字号。Windows 自带的点阵宋体(中易宋体)从 Vista 开始只提供 12、14、16 px 这三个大小的点阵,而 13、15、17 px 时用的是小一号的点阵(即每个字占的空间大了 1 px,但点阵没变),于是略显稀疏。


2.2.9、margin和padding分别适合什么场景使用

何时应当使用margin:

需要在border外侧添加空白时。

空白处不需要背景(色)时。

上下相连的两个盒子之间的空白,需要相互抵消时。如15px + 20px的margin,将得到20px的空白。

何时应当时用padding:

需要在border内测添加空白时。

空白处需要背景(色)时。

上下相连的两个盒子之间的空白,希望等于两者之和时。如15px + 20px的padding,将得到35px的空白。

个人认为:margin是用来隔开元素与元素的间距;padding是用来隔开元素与内容的间隔。margin用于布局分开元素使元素与元素互不相干;padding用于元素与内容之间的间隔,让内容(文字)与(包裹)元素之间有一段“呼吸距离”。


2.2.10、全屏滚动的原理是什么?用到了CSS的那些属性

主要呈现方式有两种,一种是整体的元素一直排列下去,假设有五个需要展示的全屏页面,那么高度是500%,只是展示100%,剩下的可以通过transform进行Y轴定位,也可以通过margin-top实现,第二种就是所有的子元素和页面一样,都显示在当前页面,简单的实现第一种页面

2.2.11、CSS隐藏元素的几种方法(至少说出三种)

Opacity:元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互;

Visibility:与 opacity 唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件中也会被隐藏;

Display:display设为 none 任何对该元素直接打用户交互操作都不可能生效。此外,读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在;

Position:不会影响布局,能让元素保持可以操作;

Clip-path:clip-path属性还没有在 IE 或者 Edge 下被完全支持。如果要在你的 clip-path 中使用外部的 SVG 文件,浏览器支持度还要低;


2.2.12、CSS居中(包括水平居中和垂直居中)

一、内联元素居中方案

水平居中设置:

1.行内元素 设置 text-align:center;

2.Flex布局设置display:flex;justify-content:center;(灵活运用,支持Chroime,Firefox,IE9+)

垂直居中设置:

1.父元素高度确定的单行文本(内联元素)设置 height = line-height;

2.父元素高度确定的多行文本(内联元素)

a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle;

b:先设置 display:table-cell 再设置 vertical-align:middle;

二、块级元素居中方案

水平居中设置:

1.定宽块状元素  设置 左右 margin 值为 auto;

2.不定宽块状元素

a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto;

b:给该元素设置 displa:inine 方法;c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%;

垂直居中设置:

使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;

利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;

利用display:table-cell属性使内容垂直居中;

使用css3的新属性transform:translate(x,y)属性;

使用:before元素;


2.2.13、写出几种IE6 BUG的解决方法

1.双边距BUG float引起的 使用display

2.3像素问题 使用float引起的 使用dislpay:inline -3px

3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active

4.Ie z-index问题 给父级添加position:relative

5.Png透明 使用js代码 改

6.Min-height最小高度 !Important 解决’

7.select在ie6下遮盖 使用iframe嵌套

8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)

QQ技术交流群:815302226



本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:http://www.dengtar.com/16529.html
相关前端设计
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.