前端面试题汇总学习(二)

div+css布局较table布局有什么优点?

div+css优点:

  • 代码结构清晰明了,结构、样式和行为分离,带来足够好的可维护性
  • 布局精准,网站版面布局修改简单
  • 加快了页面的加载速度(最重要的)
  • 节约站点所占的空间和站点的流量
  • 提高搜索引擎对网页的搜索效率

table布局的好处:

  • 容易上手
  • 可以形成复杂的变化,简单快速
  • 表现上更加“严谨”,在不同浏览器中都能得到很好的兼容
简述渐进增强和优雅降级之间的不同

渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就构建完整的功能,然后在针对低版本浏览器进行兼容。
区别: 优雅降级是从复杂的现状开始,并试图减少用户体验的供给;而渐进增强则是从一个基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。

为什么利用多个域名来存储网站资源会更有效?
  • CDN缓存更方便
  • 突破浏览器并发限制
  • 节约cookie带宽
  • 节约主域名的连接数,优化页面响应速度
  • 防止不必要的安全问题
请谈一下你对网页标准和标准指定机构重要性的理解

网页标准和标准制定机构都是为了能让web发展的更健康,开发者遵守统一的标准,降低开发难度、开发成本,搜索引擎优化(SEO)也会更好做,也不会因为滥用代码导致各种bug、安全问题,提高网站易用性。

简述一下src和href的区别

src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将指向的资源下载并应用到文档中。例如,js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到该资源加载、编译、执行完毕。
href指向网络资源所在的位置,建立和当前元素(锚点)或当前文档(链接)之间的链接。如果用link链接css脚本,浏览器会识别该 css 文件,就会并行下载资源并且不会停止对当前文档的处理。

有哪些方式可以对一个DOM设置他的CSS样式

外部样式表:引入一个外部css文件
内部样式表:将css代码放在<head>标签内部
内联样式:将css样式直接定义在HTML元素内部

CSS有哪些选择器
  • 标签选择器
  • id选择器
  • 类选择器
  • 后代选择器
  • 子元素选择器
  • 伪类选择器
  • 通用选择器
  • 群组选择器
css选择器的优先级是怎样定义的
  • !important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性
  • 同一级别中后写的会覆盖先写的样式。
CSS 中可以通过哪些属性定义,使得一个 DOM 元素不显示在浏览器可视范围内?

1.设置 display 属性为 none
2.设置 visibility 属性为 hidden
3.设置宽高为 0
4.设置透明度为 0
5.设置 z-index 位置在-1000

display和 visibility 的区别
  • visibility和display属性都可以达到隐藏页面元素的目的
  • 当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置。
  • display被设置为"none",这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填。
  • 应用display: none;的元素相当于消失,而visibility: hidden;则只表示隐藏,位置还在。
超链接访问过后hover样式就不出现的原因是什么?如何解决?

被点击访问过的超链接样式不再具有hover、active了,解决办法是改变css属性的排列顺序:link-visited-hover-active

行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?

块级元素:总是独占一行,其后元素也是另起一行。宽度、高度、内边距、外边距都可控制。
行内元素:与相邻的行内元素在同一行。宽度、高度、内边距的top/bottom和外边距的top/bottom都不可变,padding和margin的left和right是可以设置的(就是里面文字或图片的大小。
浏览器默认inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换行):<input /> <img> <button> <textarea> <label>

什么是外边框重叠?重叠的结果是什么?

外边距重叠:margin-collapse。
在css当中,相邻的两个盒子的外边距可以结合成一个单独的外边距,这种合并外边距的方式就是折叠,所结合的外边距称为折叠外边距。
折叠结果:
两个相邻的外边距都为正数时,折叠结果为两者之间较大的值;
两个相邻的外边距都为负数时,折叠结果为两者绝对值的较大的值;
两个相邻的外边距都为正一正一负时,折叠结果为两者相加的值;

rgba()和 opacity 的透明效果有什么不同?

rgba()和 opacity 都能实现透明效果,但最大的不同是 opacity 作用于元素,以及元素内的所有内容的透明度,而 rgba()只作用于元素的颜色或其背景色。(设置 rgba 透明的元素的子元素不会继承透明效果!)

CSS中可以让文字在垂直和水平方向上重叠的两个属性是什么?

垂直方向:line-height。设置成比字体高度还小就可以让两行重叠
水平方向:letter-spacing。设置为负值即可实现重叠

letter-spacing 可以用于消除 inline-block 元素间的换行符空格间隙问题。

垂直居中一个浮动元素
//第一种方法
 div{
            width: 200px;
            height: 200px;
            background-color: #6699FF;
            margin:auto;
            position: absolute;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
        }
//第二种方法
 div{
           background-color:#6699FF;
           width:200px;
           height:200px;
           position: absolute;
           top: 50%;
           left: 50%;
           margin-top:-100px ;
           margin-left: -100px;
       }
px和em的区别

px和em都是长度单位,区别是,px的值是固定的,em的值不是固定的,并且em会继承父级元素的字体大小。(1em=16px)

css中link和@import的区别
  • link属于html标签,而@import是css中提供的。
  • 在页面加载的时候,link会被同时加载,而@import引用的css会在页面加载完成后才会加载引用的css。
  • @import只有在ie5以上才可以识别,而link是html标签,不存在兼容性问题
  • link引入样式的权重大于@import的引用(@import是将样式导入到当前的页面中)
行内元素有哪些?块级元素有哪些? 空(void)元素有哪些?

行内元素:a、b、i、span、input、select、strong、img
块级元素:div、p、h1、h2、h3、h4、form、ul、ol、dl、li
空元素:br、hr、img、input、link、meta、area

css哪些属性可以继承?css3新增伪类有哪些?

可继承:font-size、font-family、color、ul、li、dl、dd、dt
不可继承:border、padding、margin、width、height
css3新增伪类:
:fiest-of-type:选择属于其父元素的首个匹配元素
:last-of-type:选择其父元素的最后的一个匹配元素
:only-of-type:选择其父元素的只有一个匹配元素(不能有第二个匹配元素,其他元素可以有) 
:only-child:选择其父元素的只有一个元素(而且这个元素只能是匹配元素,不能有其他元素)
:nth-child(n):匹配父元素下指定子元素,在所有子元素中排序第n
:enabled:选择可用的表单元素
:disabled:选择禁用的表单元素
:checked: 选择被选中的表单元素

position的值?
  • relative:生成相对定位元素,相较于其正常位置进行定位
  • absolute:生成绝对定位元素,相对于static定位以外的第一个父元素进行定位
  • fixed:生成绝对定位元素,相对于浏览器窗口定位
  • static:默认值,没有定位
  • inherit:规定应该从父元素继承 position 属性的值。
text-align:center 和 line-height 有什么区别?

text-align 是水平对齐,line-height 是行间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值