面试之“两列布局”/ 三列布局

2023-10-16 21:48
文章标签 面试 布局 两列 三列

本文主要是介绍面试之“两列布局”/ 三列布局,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此问题是在拓尔思公司面试时HR所问的问题,当时也是懵的…

  • ①:两列定宽 (分别确定两列的宽度并且浮动它们)
**css**: .left{width:200px;height:200px;border:1px solid blue;float:left} .right{width:300px;height:300px;border:1px solid red;float:left}
  • ②:两列宽度自适应 (百分比设置宽度且浮动它们)
**css**: .left{width:30%;float:left;background:yellow}.right{width:70%;float:left;background:red}
  • ③:两列布局之左(右)定宽 右(左)自适应 (利用浮动特性 只需将固定宽度的元素浮动,另一个不用浮动可以设置外边距margin等于固定宽度值)
**css**: .left{width:200px;float:left;background:yellow}.right{background:red;margin-left:200px}
  • ④:两列布局之两列等高 (收集网上有四种方式来实现)

    1.利用负边距(利用padding-bottom可以扩展背景色,margin-bottom可以把下个元素“吸引”到身边来,再设置父元素overflow:hidden)但是缺点是把背景色撤了,效果不明显

**html:** <div class="contener"><div class="contener_left"><p>left</p><p>left</p><p>left</p><p>left</p><p>left</p></div><div class="contener_right"><p>right</p><p>right</p><p>right</p></div></div>
**css:** .contener{width:500px;height:200px;border:3px solid blue;margin:0 auto;overflow:hidden;}.contener_left{width:200px;background:red;float:left;margin-bottom:-10000px;padding-bottom:10000px;}.contener_right{width:300px;background:yellow;float:left;margin-bottom:-10000px;padding-bottom:10000px;}

效果如下:
这里写图片描述
2.边框模拟(其主要思想就是将任意一个元素的边框宽度值设置为另一个的宽度值,相当于用边框的颜色取代前者的背景色使其在视角上登高)
3.用JavaScript控制
4.利用背景图中的background-repeat:repeat-y(但是前提是准备一张可以纵向重复的图片作为背景,即Y轴重复)

  • ⑤:**三列布局之两列定宽中间自适应
    方法一: (利用浮动特性:但是有个缺陷就是中间自适应的元素必须放在最后,因为前面两个左右浮动后,脱离文档流,后面的中间元素排上来。关键的关键是设置中间元素的margin值为0 固定宽度值)
**html:**<div class="left">left</div><div class="right">right</div><div class="middle">middle</div>
**css:**div{height:200px;}.left{float:left;width:100px;background:yellow;_margin-right:-3px;}.right{float:right;width:100px;background:blue;_margin-left:-3px;}.middle{background:gray;margin:0 100px;_margin:0 97px;}

效果如下:
这里写图片描述
方法二:(绝对定位:这种方式可以不管元素顺序,但是还是需要关心自适应部分的margin值:0 固定宽度值,跟浮动特性的话这种可以不管顺序。)

<div class="box"><div class='left'>left</div><div class='middle'>middle</div><div class='right'>right</div>
</div>.box{position:relative;}.left{height:90px;background-color:red;width:300px;position:absolute;left:0;top:0;}.middle{background-color:blue;height:90px;margin:0 300px; //必须设置离左右固定宽度值距离}.right{width:300px;height:90px;background-color:gray;position:absolute;right:0;top:0;}

方法三:margin负值法(这种方法呢还是有缺陷,需要将中间元素放在最上面并使用一个父级包裹,具体做法不太好理解)

		<div class='wrap'><div class='middle'>middle</div></div><div class='left'>left</div><div class='right'>right</div>.wrap{ width: 100%;height: 100px; background-color: #fff;float: left;}.left{height:90px;background-color:red;width:300px;float:left;margin-left:-100%; //左边元素的margin-left值必须等于包裹中间元素的宽度值}.middle{background-color:blue;height:90px;margin:0 300px; //同样需要远离左右两边固定宽度}.right{width:300px;height:90px;background-color:gray;float:left;margin-left:-300px; //而右边元素的margin-left值只需要等于固定宽度负值}

方法四:css3特性(flex弹性布局,这个只是需要注意兼容性)

<div class="box"><div class='left'>left</div><div class='middle'>middle</div><div class='right'>right</div></div>.box{width:100%;display:flex; //弹性布局}.left{height:90px;background-color:red;width:300px;}.middle{background-color:blue;height:90px;flex:1; //只需设置中间值为1,flex是 flex-grow(扩展的量)、flex-shrink(收缩的量) 和 flex-basis( "%"、"px"、"em" 或任何其他长度单位的数字) 属性的简写属性}.right{width:300px;height:90px;background-color:gray;}
  • ⑥:三列布局之三列等高 (原理同两列等高一样,利用负边距)

  • ⑦:三列布局之左侧定宽,中间,右侧自适应(可以将其想象成两列一样,将中间和右边包裹一下,再利用浮动特性)

  • ⑧:高度自适应 (一个固定高度,另一个绝对定位,设置bottom:0;top等于固定高度)

**html:**<div class="top">我是top</div><div class="bottom">我是bottom</div>
**css:** IE6不兼容body{margin:0;padding:0;}.top{height:100px;width:100%;background:yellow;}.bottom{		position:absolute;top:100px;bottom:0;background:blue;width:100%;}

效果如下:
这里写图片描述

这篇关于面试之“两列布局”/ 三列布局的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220986

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

贝壳面试:什么是回表?什么是索引下推?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 1.谈谈你对MySQL 索引下推 的认识? 2.在MySQL中,索引下推 是如何实现的?请简述其工作原理。 3、说说什么是 回表,什么是 索引下推 ? 最近有小伙伴在面试 贝壳、soul,又遇到了相关的

毕业前第二次面试的感慨

距面试已经过去了有几天了,我现在想起来都有说多的恨感慨。 我一直都是想找刚刚起步的企业,因为这能让我学到更多的东西,然而正好有一家企业是刚起步的,而且他还有自己的产品专利,可以说这是一家,即是创业又是刚起步的公司,这家公司回复了我投给他的简历,这家企业想进一步了解我的情况,因为简历上我符合这家企业的基本要求,所以要进一步了解。 虽然面试的过程中,他给我的面试题,我做得并不是很理想,

Apache Tiles 布局管理器

陈科肇 =========== 1.简介 一个免费的开源模板框架现代Java应用程序。  基于该复合图案它是建立以简化的用户界面的开发。 对于复杂的网站,它仍然最简单,最优雅的方式来一起工作的任何MVC技术。 Tiles允许作者定义页面片段可被组装成在运行一个完整的网页。  这些片段,或Tiles,可以用于为了降低公共页面元素的重复,简单地包括或嵌入在其它瓦片,制定了一系列可重复使用

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化