css布局之左中右结构总结

结构说明:左右两部分宽度固定,中间的部分填充剩余所有宽度。
常用场景:最左边摆放一张图片,中间摆放说明性文字,右边摆放相关操作的小图标。
之前的做法虽然有实现但是不完美。思路如下(简单描述为左中结构):
首先考虑中间的要拉伸铺满剩下的宽度,必须宽度设置成百分比100%,用box-sizing设置为border-box,然后配合padding,给左右留固定的宽度,左右的内容放到padding区域与其重叠,使用float浮动是不能重叠的,所以一定要有一个是绝对定位,全部都使用绝对定位是没有问题的,但是绝对定位有个特性,定位的元素从文档流中删除,不占用空间,导致父元素不能自动适应高度,如果全部都绝对定位,父元素不显示指定高度,那么高度会为0,导致后面的元素和要排列的左中右结构重叠了。浮动元素本来也是脱离了文档流,不占用空间,但是父元素设置成内联块之后,它能占用空间(不理解内联块的性质)。于是就用绝对定位和浮动来混合实现,多数情况下,左边的图片宽度和高度都固定,于是就把左边的内容设置成绝对定位,中间的内容设置成浮动了,父元素再设置个最小高度为左边内容的高度,规避高度适应问题。
上述实现如果遇到左边和中间的内容高度都不确定,那就不好使了。今天终于想出另一种方案,思路如下:
全部都用浮动,关键要解决中间元素宽度为100%之后,左中右总宽度超过父元素宽度,导致换行的问题。借助外边距margin设置为负值解决了。中间内容把padding-left设置成左右部分宽度的和,把margin-left设置成padding-left对应的负数,就缩减了真实宽度了,恰好合适。
示例代码:

<div style="display:inline-block;width:100%;">
    <div style="float: left; width:100px;">
        左边
    </div>
    <div style="float: left;box-sizing:border-box;width: 100%;padding-left: 150px;margin-left: -150px;">
        中间
    </div>
    <!- 此处float等于left只是为了让它浮动,处在第三个节点,已经是布局的右边 ->
    <div style="float: left; width:50px;">
        右边
    </div>
</div>

  

时间: 2024-10-13 12:32:22

css布局之左中右结构总结的相关文章

等高左中右结构

原理: “margin-bottom:-1000px;”和“padding-bottom:1000px;” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <style type="text/css"> body{margin:0;} #all{     width:700px;     margin:

小程序UI设计(7)-布局分解-左-上下结构

FlexBox布局中的变幻方式很多,我们继续了解一个左-上下结构的布局分解  左边结构树中WViewRow下面有两个WViewColumn.WViewRow是横向排列,WViewColumn是纵向排列.第一个WViewColumn中放一个图片,第二个放两张图片.如下图展开的结构树. 下面针对第二个WViewColumn中有两个图片的FlexBox进行分解讲解. flex-direction=column说明内部组件主轴x是从上而下.flex-wrap在本工具中对于column类型的不起作用.此处

Android - 常见的控件布局,左中右,左右等

这里汇总的是自己在工作过程中,使用过的常见空间布局,记录在这里.详情如下: 1. 三个控件,分别处于左,中,右 要点:使用RelativeLayout 1 <RelativeLayout 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:orientation="horizontal"> 5 <TextVi

DIV+CSS布局基本流程及实例介绍

都说用DIV+CSS布局来设计网站便于优化,容易被收录,那么你对DIV+CSS布局的用法是否了解?CSS布局是网页html通过DIV标签+CSS样式表代码开发制作的(html)网页的统称.DIV+CSS布局是现在非常流行的布局方法,替代了原来的表格布局.下面我们先来看下学习DIV+CSS布局的基本步骤: 一.认清学习的要求 1.弄清目的,首先要认识为什么要学习CSS? 2.心态不能急,如果你很急躁,否则会很快丧失兴趣. 3.坚持,这个不是一到两天的事情,是一个漫长的过程(至少两个月). 二.基础

关于div+css布局

div的元素布局加上css的样式表布局知识:DIV+CSS布局,CSS布局是网页html通过div标签+css样式表代码开发制作的(html)网页的统称.div+css布局好处:便于维护制作div+css网页前思考布局:首先我们拿到一张网页美工图片我们将从上下.上中下.左右.上中(中包括左右)下布局框架来思考.(从大元素块到小元素块:从html上到下:从左至右) /*我们可以分析出我们DIV CSS布局重构此页面结构框架,我们可以看出是 上.中.下结构,其中又包括了左右结构.由此我们就要写此页面

&lt;转载&gt;div+css布局教程之div+css常见布局结构定义

在使用div+css布局时,首先应该根据网页内容进行结构设计,仔细分析和规划你的页面结构,你可能得到类似这样的几块: 页面层容器.页面头部.标志和站点名称.站点导航(主菜单).主页面内容.子菜单.搜索框.页脚(版权和有关法律声明). 通常采用DIV元素来将这些结构定义出来,类似这样: <div id="Container"></div> 页面层容器 <div id="header"></div> 页面头部 <di

左中右布局经典案例

<!DOCTYPE html> <html lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <style type="text/css"> body{margin: 0px;} #divLeft{width:100px;height:800px

上中下结构DIV CSS布局实例

实例布局之上中下结构DIV CSS布局 上中下结构为常见布局结构,一般普通(企业网站)网页我们可以大致分为上(头部).中(内容区).下(底部版权)组成.而这其实是由最简单上下结构CSS布局演变而成,只不过多了一个DIV层结构而且,本质布局方法技巧不变. 一.主要思维   -   TOP 不管多少个上下结构或单一结构,一般主体内容都是居中的,这个使用就需要使用css margin样式(让布局居中兼容各大浏览器),同时一般网页都会固定宽度,也就是要使用css width设置好每个DIV层宽度. 这里

CSS布局——左定宽度右自适应宽度并且等高布局

今天有位朋友一早从妙味课堂转来一个有关于CSS布局的面试题,需要解决,花了点时间写了几个DEMO,放上来与大家分享受.那么我们在看DEMO之前一起先来看看这个面试题的具体要求吧: 左侧固定宽,右侧自适应屏幕宽: 左右两列,等高布局: 左右两列要求有最小高度,例如:200px;(当内容超出200时,会自动以等高的方式增高) 要求不用JS或CSS行为实现: 仔细分析试题要求,要达到效果其实也并不是太难,只是给人感觉像有点蛋疼的问题一样.但是你仔细看后你会觉得不是那么回事: 左边固定,右边自适应布局,