前端面试题目:页面布局

页面布局:假设高度已知,请写出三栏布局,其中左栏、右栏宽度各为300px,中间自适应

有五种方式:

1.float方式

2.absolute方式

3.flex

4.table

5.网格grid

<!--float方法-->
<section id="float">
	<style type="text/css">
		#float{
			background: yellow;
			overflow: hidden;
		}
		#float .left-center-right .left{
			float: left;
			width: 300px;
			height: 100px;
			background: red;
		}
		#float .left-center-right .right{
			float: right;
			width: 300px;
			height: 100px;
			background: red;
		}
	</style>
	<article class="left-center-right">
		<div class="left"></div>
		<div class="center">
			
		</div>
		<div class="right"></div>
	</article>
</section>
<!--绝对定位方法-->
<section id="absolute">
	<style type="text/css">
		#absolute{
			position: relative;
			background: yellow;
			height: 100px;
		}
		#absolute .left-center-right .left{
			position: absolute;
			left: 0;
			top: 0;
			width: 300px;
			height: 100px;
			background: red;
		}
		#absolute .left-center-right .center{
			position: absolute;
			left: 300px;
			right: 300px;
		}
		#absolute .left-center-right .right{
			position: absolute;
			right: 0;
			top: 0;
			width: 300px;
			height: 100px;
			background: red;
		}
	</style>
	<article class="left-center-right">
		<div class="left"></div>
		<div class="center">
			
		</div>
		<div class="right"></div>
	</article>
</section>
<!--flexbox方法-->
<section id="flex">
	<style type="text/css">
		#flex .left-center-right{
			display: flex;
			background: yellow;
		}
		#flex .left-center-right .left{
			width: 300px;
			height: 100px;
			background: red;
		}
		#flex .left-center-right .center{
			flex: 1;
		}
		#flex .left-center-right .right{
			width: 300px;
			height: 100px;
			background: red;
		}
	</style>
	<article class="left-center-right">
		<div class="left"></div>
		<div class="center">
			
		</div>
		<div class="right"></div>
	</article>
</section>
<!--表格布局方法-->
<section id="table">
	<style type="text/css">
		#table .left-center-right{
			display: table;
			background: yellow;
			width: 100%;
		}
		#table .left-center-right div{
			display: table-cell;
		}
		#table .left-center-right .left{
			width: 300px;
			height: 100px;
			background: red;
		}
		#table .left-center-right .right{
			width: 300px;
			height: 100px;
			background: red;
		}
	</style>
	<article class="left-center-right">
		<div class="left"></div>
		<div class="center">
			
		</div>
		<div class="right"></div>
	</article>
</section>
<!--网格布局方法-->
<section id="grid">
	<style type="text/css">
		#grid .left-center-right{
			display: grid;
			background: yellow;
			width: 100%;
			grid-template-rows: 100px;
			grid-template-columns: 300px auto 300px;
			
		}
		#grid .left-center-right .left{
			background: red;
		}
		#grid .left-center-right .right{
			background: red;
		}
	</style>
	<article class="left-center-right">
		<div class="left"></div>
		<div class="center">
			
		</div>
		<div class="right"></div>
	</article>
</section>

还有一个点就是比较兼容性问题:

五种方法flex和table兼容性很好

而float和absolut则脱离文档流方式

grid是新的方法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
: 1. 请解释下HTML、CSS、JavaScript的作用分别是什么? 2. 请解释下盒模型Box Model是什么? 3. 请解释下CSS的优先级是什么? 4. 请解释下浏览器缓存机制是什么? 5. 请解释下跨域问题是什么?如何解决? 6. 请解释下什么是事件冒泡和事件捕获? 7. 请解释下什么是闭包? 8. 请解释下什么是原型和原型链? 9. 请解释下如何实现一个Ajax请求? 10. 请解释下如何实现跨域请求? 答案: 1. HTML(超文本标记语言)负责页面结构和内容;CSS(层叠样式表)负责页面样式;JavaScript 负责页面交互和动态效果。 2. 盒模型Box Model指的是一个HTML元素由内容区域、内边距、边框和外边距组成。它是一个CSS的基本概念,对于页面布局和样式排版非常重要。 3. CSS的优先级是根据选择器的特殊性和位置来计算的。优先级从高到低依次为:!important(权重最高)、内联样式、ID选择器、类选择器、标签选择器和通配符选择器等。 4. 浏览器缓存机制指的是浏览器在请求某个资源时,会先检查本地缓存是否有该资源的副本,如果有就直接从缓存中获取,否则才会从服务器请求。这样可以加速页面加载速度并减轻服务器负担。 5. 跨域问题指的是浏览器出于安全考虑,禁止从一个域名的网页向另一个域名的资源发送请求。常见的解决方法有JSONP、CORS、反向代理等。 6. 事件冒泡指的是事件在DOM树中从下往上逐级传播,直到被处理为止;事件捕获则是从上往下逐级传播,也是直到被处理为止。两者是互补的关系,事件既可以采用冒泡模式也可以采用捕获模式,也可以同时使用。 7. 闭包是指函数可以访问函数定义时所处的作用域,即使函数在其他地方调用也可以访问该作用域中的变量。它可以用来创建私有变量和函数、实现函数记忆、实现模块化等。 8. 原型是指JavaScript中每个对象都有一个原型对象,它包含了该对象的公共属性和方法。原型链是指对象在寻找属性和方法时会沿着原型链向上查找,直到找到为止。这样可以实现对象的继承和复用。 9. Ajax请求可以通过XMLHttpRequest对象来实现。首先创建一个XMLHttpRequest对象,然后调用open()方法设置请求方法和URL,再调用send()方法发送请求,并在回调函数中处理响应数据。 10. 跨域请求可以通过JSONP、CORS、反向代理等方法来实现。其中JSONP利用script标签的src属性可以跨域加载资源的特性,CORS则是通过服务器设置响应头来实现跨域请求的。反向代理则是在同一个域名下设置一个代理服务器,将跨域请求转发到标服务器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值