css中常见的布局方式

article/2025/11/5 13:53:45

1.流体布局

流体布局是网页缩小和放大时网页布局会随着浏览器的大小而改变。
两边的宽度是固定的,中间的宽度是可以根据屏幕的大小进行改变的
思路: 给左右两边的盒子设置固定的宽高并设置左右浮动,中间盒子通过设置margin-left和margin-right(margin的值为到父元素两侧的距离)
实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>流体布局</title><style>.left{width: 150px;height: 50px;float: left;background: red;}.right{width: 150px;height: 50px;float: right;background: blue;}.center{height: 50px;margin-left:150px ;margin-right:150px ;background: green;}</style>
</head>
<body><div class="parent"><div class="left">1</div><div class="right">3</div><div class="center">2</div></div>
</body>
</html>

结果
在这里插入图片描述

圣杯布局`

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>圣杯布局</title><style>*{margin: 0;padding: 0;}.center{padding: 0 200px;}.middle,.left,.right{float: left;height: 50px;}.middle{width: 100%;background: pink;}.left,.right{width: 200px;}.left{background: red;margin-left: -100%;position: relative;left: 200px;}/*为什么要使用定位因为center添加了padding,意味着盒子宽度增加了,原来设置左右盒子的位置也就发生了变化,设置相对定位,偏移padding左右的值就可以在视觉上实现相应的功能 */.right{background: green;margin-left: -200px;position: relative;left: 200px;}</style>
</head>
<body><div class="center"><div class="middle">中间</div></div><div class="left">左边</div><div class="right">右边</div></body>
</html>

结果
在这里插入图片描述

双飞翼布局

双飞翼布局是淘宝提出的,是针对圣杯布局的一个优化方案(使用了定位).解决方法就是在center中在添加一个一个inner盒子,并为其设置margin-left和margin-right,这样中间盒子的内容区域就不会被覆盖

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>双飞翼布局</title><style>*{margin: 0;padding: 0;}.center{width: 100%;background: pink;}.center,.left,.right{float: left;height: 50px;}.left,.right{width: 200px;}.left{background: red;margin-left: -100%;}.right{background: green;margin-left: -200px;}.middle{margin-left: 200px;margin-right: 200px;}body{min-width: 900px;}</style>
</head>
<body><div class="center"><div class="middle">中间</div></div><div class="left">左边</div><div class="right">右边</div></body>
</html>

在这里插入图片描述

等分布局

1.float+百分比布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>等分布局</title><style>.item{float: left;width: 25%;height: 400px;}</style>
</head>
<body><div class="box"><div class="item" style="background: red;">1</div><div class="item" style="background: blue;">2</div><div class="item" style="background: green;">3</div><div class="item" style="background: pink;">4</div></div>
</body>
</html>

在这里插入图片描述
2.行内块+百分比布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>等分布局</title><style>.box{font-size: 0;}.item{display: inline-block;width: 25%;height: 400px;font-size: 14px;}</style>
</head>
<body><div class="box"><div class="item" style="background: red;">1</div><div class="item" style="background: blue;">2</div><div class="item" style="background: green;">3</div><div class="item" style="background: pink;">4</div></div>
</body>
</html>

结果
在这里插入图片描述

注意:display设置元素为行内元素和行内块元素时,元素之间存在间隙问题
原因:存在间隙是由于元素标签之间留有空白字符造成的。
解决方法有两种
(1)消除元素标签之间的空白字符,把标签连在一起。
(2)在这些行内元素的父元素上设置font-size设置为0,再在行内元素上设置正常的字体显示大小
3.flex布局
主要通过flex属性实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>等分布局</title><style>.box{/* 开启弹性盒子 */display: flex;}.item{height: 400px;/* 平分空间 */flex: 1;}</style>
</head>
<body><div class="box"><div class="item" style="background: red;">1</div><div class="item" style="background: blue;">2</div><div class="item" style="background: green;">3</div><div class="item" style="background: pink;">4</div></div>
</body>
</html>

注意:flex元素在主轴中的缩放因子与宽度
语法 flex:放大因子(0/1),缩小因子(0/1),计算宽度
补充:
order属性元素在主轴上的顺序,值越小,越靠前。默认值是0,允许为负值
place-self控制元素在交叉轴上的对齐方式,有四个值stretch伸展,start交叉轴起始始,end交叉轴终止线,center交叉轴中心
4.grid布局
主要通过template属性实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>等分布局</title><style>.box{/* 开启网格布局 */display: grid;/* 平分空间 */grid-template-columns: repeat(4,1fr);}.item{height: 400px;}</style>
</head>
<body><div class="box"><div class="item" style="background: red;">1</div><div class="item" style="background: blue;">2</div><div class="item" style="background: green;">3</div><div class="item" style="background: pink;">4</div></div>
</body>
</html>

在这里插入图片描述


http://chatgpt.dhexx.cn/article/kR3KTdeu.shtml

相关文章

CSS的三大布局方式(流式布局,浮动布局和层布局)

文章目录 前言一、标准文档流二、三种布局方式1.流式布局2.浮动布局&#xff08;1&#xff09;字围效果&#xff08;2&#xff09;圣杯布局 3.层布局定位的分类&#xff1a;&#xff08;1&#xff09; 相对定位 position:relative&#xff08;2&#xff09; 绝对定位 position:…

Unity 初识:SkyBox(天空盒)

概念 天空盒是包裹整个场景的环境效果。 制作天空盒 1、创建材质球。 2、设置材质球Shader为SkyBox。 SkyBox/6 Sided&#xff0c;将六张贴图放到对应位置。 使用天空盒 为场景添加&#xff1a; 方法一、直接将做好的材质拖到场景中。 方法二、菜单栏Window--->Lighting-…

unity 天空盒介绍

天空盒其实很简单&#xff0c;就是直接找贴图&#xff0c;比如网上直接搜 然后将图片导入Unity&#xff0c;把texture shape 改为Cube模式&#xff0c;点击Apply应用即可 当应用之后Unity会自动帮我们生成材质球&#xff0c;直接将材质球拖到Scene场景即可&#xff0c;看到…

Unity天空盒子设置和基础灯光设置

选择new Lighting settings来创建一个新的光源 这里可以选择是来自天空盒子的光源还是选择他自己本身的颜色 之后选择使用GPU来渲染

Unity3D -- 天空盒(图文)

1.1、天空盒图片 如果是这样的天空盒图片 直接引入到Unity项目中&#xff0c;在Inspector窗口将Texture Shape修改为Cube&#xff0c;而后保存并应用就行了 1.2、其它图片或整张图片 如果需要将图片等分可通过ps进行处理 选择并使用裁剪工具 &#xff0c;得到如下图 如果图片出…

小功能⭐️Unity动态更换天空盒、旋转天空盒

文章目录 &#x1f7e5; Unity动态更换天空盒1️⃣ 方法12️⃣ 方法2 &#x1f7e7; 旋转天空盒 &#x1f7e5; Unity动态更换天空盒 1️⃣ 方法1 1、在摄像头上添加SkyBox组件 放到其他地方不管用。 2、创建SkyBox类型的的材质球。放入即可。 3、通过代码&#xff0c;你便可获…

unity3d场景怎么添加天空盒子?

unity3d场景中想要添加天空盒子&#xff0c;该怎么添加呢&#xff1f;下面我们就来看看详细的教程。 1、先下载组成天空盒子的天空图片 2、把天空图片拖进unity3d中创建的文件夹 3、新建一个材质球 4、把材质球的shader修改成天空盒选项 5、在天空盒的六个方向&#xff08;前&a…

Unity3D-设置天空盒

首先打开工具栏Window下的照明&#xff0c;找到环境这里的天空盒材质就是整个项目的背景&#xff0c;可以到官网下载自己喜欢的天空盒材质 这里就是下载好的天空盒材质 点开Shader 选择Skybox 再选择Cubemap Extended 选择好后将其拖入天空盒材质 可以在检测器里调整天空盒的一…

unity移动天空盒

旋转 直接观察天空盒参数是有一个Rotation的。 我们可以通过给Camera添加Skybox组件获取到天空盒然后修改Rotation参数。 private void Update(){RotateSkybox();}//控制天空盒旋转private void RotateSkybox(){float num Camera.main.GetComponent<Skybox>().material…

Unity修改默认天空盒Skybox

在Main Camera 上添加Skybox&#xff0c;并拖动目标天空盒&#xff0c;没有修改成功。 &#xff08;hierarchy 下面的 main camera 主摄像机 然后 点击 component->Rendering->skybox 给主摄像机添加一个 天空盒 这是我们就可以再 摄像机的 属性栏看到 skybox 属性 …

Unity 动态天空盒

为了使天空盒更真实&#xff0c;需要控制天空盒动态旋转。 网上找到的方法是&#xff1a; float num RenderSettings.skybox.GetFloat("_Rotation");RenderSettings.skybox.SetFloat("_Rotation", num 0.05f); 但在我的工程中会报错&#xff08;我的un…

unity天空盒有缝隙解决方法

今天发现有些天空盒导入到unity显示会出现一个立方体的样子&#xff0c;立方体面之间会出现缝隙&#xff0c;看着很明显。 解决方法很简单&#xff0c;把天空盒的材质图片&#xff08;也就是Texture&#xff09;修改一下。 有两个地方需要修改&#xff0c;如下图&#xff1a;…

Unity 天空盒的制作与应用

转自https://blog.csdn.net/weixin_39923777/article/details/83030780 一.天空盒的作用&#xff1a; 1.用于渲染显示天空和周围的环境&#xff1b; 2.作为场景中的辅助光源。 二.制作天空盒&#xff1a; 1.导入“HDR 环境贴图”素材图片到unity项目中&#xff1b; 2.更改贴…

unity skybox天空盒下载

几百个天空盒,分了好几份 天空盒下载 1. 太空天空盒下载 2. 白天天空盒下载 3. 夜晚天空盒下载 4. 阴天雾霾天空盒下载 5. HDRI Haven skybox-1 6. HDRI Haven skybox-2 7. 其他天空盒-1 8. 其他天空盒-2 最后是没分的天空盒暂且叫其他天空盒吧,按需下载,喜欢的话请点个赞吧…

Unity3D制作天空盒

1、下载并导入hdr高动态范围图像资源到Project视图中&#xff0c;然后将图片的“Texture Shape”修改为“Cube”。 2、Project视图中新建一个Material&#xff0c;将“Shader”修改为“Skybox→Cubemap”。 3、将步骤1的图片拖入“Cubemap&#xff08;HDR&#xff09;”的框内。…

Unity设置天空盒子

在游戏开发中&#xff0c;我们会经常有需求是&#xff1a;要设置游戏内的一个天空的环境。 这时就可以使用Unity的天空盒子&#xff0c;来做这样的处理。 天空盒子随着镜头的转向会有不同的纹理显示&#xff0c;但是不会随着镜头的前进或后退而放大或缩小。 基于以上的需求和…

unity 天空盒有接缝

当我们使用立方体天空盒时&#xff0c;有时会出现盒子的接口处有缝隙的情况 类似于这种 有一条明显的裂缝 一般来说有两种可能的情况 情况1 我们需要把所用天空盒图片的wrapMode设置为clamp模式&#xff0c;注意六个图片都要改&#xff0c;设置完后记得Apply一下 情况二 …

unity天空盒

1.window ->rendering ->lighting 2.创建一个材质球 &#xff0c;Shader改为Skybox ->cubemap 3.图片的Texture Shape改为cube&#xff0c;Mapping改为Latitude... 4.把配置好的图片拖拽到Cubemap上 5.把材质球拖到Skybox Material 上 完成&#xff01; PS&#xff1…

Unity 天空盒

在 Unity 中&#xff0c;天空盒是使用天空盒着色器的一种材质。 创建天空盒材质 1.从菜单栏中&#xff0c;单击 Assets > Create > Material。 2.在 Shader 下拉选单中&#xff0c;单击 Skybox&#xff0c;然后单击要使用的天空盒着色器。 有Skybox/6 Sided、Skybox/…

Unity3D中如何制作天空盒

一、什么是天空盒&#xff1f; 天空盒是一个全景视图&#xff0c;分为六个纹理&#xff0c;表示沿主轴&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff0c;前&#xff0c;后&#xff09;可见的六个方向。如果天空盒被正确地生成&#xff0c;那么纹理图片的…