【CSS】关于CSS的几种移动端布局方式

article/2025/11/5 13:17:47

关于CSS的几种移动端布局方式

  • 一、移动端布局
    • 01.meta视口标签设置
    • 02.移动布局的分类有哪些?
    • 03.为什么需要二倍图?
      • (1)物理像素和物理像素比
      • (2)二倍图(根据需要确定多倍图)
      • (3)背景二倍图
    • 04.样式初始化
  • 二、流式布局
    • 01.什么是流式布局?
    • 02.为什么需要流式布局
    • 03.流式布局有什么缺陷?
  • 三、初识flex布局
    • 01.几个概念
    • 02.几个属性
      • (1)父元素的属性
      • (2)子元素的属性
  • 四、关于rem
    • 01.解决问题:
    • 02.相关概念
    • 03.优点
    • 04.rem适配
  • 五、关于媒体查询
    • 01.媒体查询——media query
    • 02.怎么定义
    • 03.如何引入资源
  • 六、初识less语法
    • 01.less简介
    • 02.less变量
    • 03.less编译
    • 04.less嵌套
    • 05.less运算
  • 七、响应式布局

一、移动端布局

01.meta视口标签设置

<meta name="viewport" content="width=device-width,initial-sacle=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" >

initial-scale 初识缩放比

user-scalable 用户缩放

maximum-scale 最大缩放比

minimum-scale 最小缩放比

02.移动布局的分类有哪些?

  • 流式布局(百分比布局)
  • 弹性布局(flex)
  • less+rem+媒体查询布局
  • 响应式布局

03.为什么需要二倍图?

(1)物理像素和物理像素比

  • 物理像素:即分辨率,屏幕显示的最小单位

    PC端1个px就是一个物理像素,一一对应的关系

  • 但在移动端1个px不是一个物理像素,不是对应关系

    中间存在一个转换比,即物理像素比

    这是因为移动端的物理像素进行了压缩,分辨率变高

(2)二倍图(根据需要确定多倍图)

如果在移动端直接插入原图,那么由于物理像素比,图片也会被放大,会变模糊,

因此这里需要,先准备原图两倍大小的图片(这里的两倍是指物理像素比,不一定是两倍的),然后手动缩小为一半,那么在移动端显示的时候会放大为两倍,这次放大因为原图先缩小了两倍,那么在放大时即恢复原图大小,就不会变模糊

(3)背景二倍图

background-size设置图片大小
特别注意精灵图的二倍图转换

04.样式初始化

引入样式:初始化CSS文件


二、流式布局

01.什么是流式布局?

  • 流式布局

    • 也称百分比布局,非固定像素布局

    • 宽度用百分比自适应,高度用像素值固定

    • 搭配最大、最小宽度

      min-widthmax-width

02.为什么需要流式布局

  • 浏览器、屏幕尺寸、分辨率不一致

03.流式布局有什么缺陷?

  • 并非所有元素都是自适应的(高度、图片、文字大小等都是固定的)

仿京东首页


三、初识flex布局

01.几个概念

  • flex布局

    即弹性盒子布局,是给父元素添加flex属性,以控制子元素的位置和排列

  • 主轴和侧轴

    主轴:即沿着flex元素排列方向所在的轴

    侧轴:垂直于flex元素排列方向的轴

02.几个属性

(1)父元素的属性

设置再父元素中,控制的是子元素的排列

  • 1.flex-direction:设置主轴方向,设置了其中一个为主轴,则另一个为侧轴

    属性值描述
    row水平排列,沿着X轴方向从左到右排列,默认值,
    column垂直排列,沿着Y轴方向从上到下排列
    row-reverse水平排列,沿着X轴方向从右到左排列
    column-reverse垂直排列,沿着Y轴方向从下到上排列
  • 2.justify-content:设置在主轴方向上的子元素的排列方式

    属性值描述
    flex-start沿主轴方向从左到右(从上到下)排列,默认值
    flex-end从主轴方向从右到左(从下到上)排列
    center居中对齐
    space-around平均分配剩余空间
    space-between两端贴边,中间仔平均分配剩余空间

    水平方向:

    垂直方向:

  • 3.flex-wrap:设置子元素是否换行

    属性值描述
    nowrap不换行,默认值,缩放父元素,同时也会缩放子元素
    wrap设置换行
  • 4.align-items:设置在侧轴方向上的单行子元素的排列方式————仅适用于单行

    属性值描述
    flex-start从头开始
    flex-end从后开始
    center在侧轴上居中对齐
    stretch拉伸(默认值)

    水平方向:

    垂直方向:

  • 5.align-content:设置在侧轴方向上的多行子元素的排列方式——————适用于多行

    这个属性只有在设置了换行的情况下才使用,且在单行情况下是没有效果的

    即需要搭配flex-wrap:wrap;

    属性值描述
    flex-start
    flex-end
    center
    space-around
    space-between
    stretch

    水平方向:

    垂直方向:

  • 6.flex-flow:复合属性,同时设置主轴方向和是否换行


  • 语法:
.father {/* 首先要给父元素添加flex */display: flex;width: 100%;height: 200px;/* 父元素中常见的六种属性 *//* 1.设置主轴方向 */flex-direction: row;/* 2.设置在主轴方向上的子元素的排列方式 */justify-content: center;/* 3.设置子元素是否换行 */flex-wrap: nowrap;/* 4.设置在侧轴方向上的单行子元素的排列方式————仅适用于单行 */align-items: center;/* 5.设置在侧轴方向上的多行子元素的排列方式——————适用于多行 */align-content: center;/* 6.复合属性,同时设置主轴方向和是否换行 *//* flex-flow: row nowrap; */
}

(2)子元素的属性

属性值描述
flex设置子项元素对剩余空间的分配,每一个子元素项都可单独设置,将所有子元素占的份数加起来,即为占父元素的比例
align-self单独设置子项自己在侧轴上的排列方式,包括flex-start;flex-end;center;stretch;baseline;
orderorder控制子项的排列顺序,越小越靠前,默认值为0
  • 语法:
.son{/* 子元素上的属性 *//* 1.设置元素对剩余空间的分配份数 *//* 即,将所有子元素占的分数加起来,然后占父元素宽度的几分之几 */flex: 1;/* 2.设置子项自己在侧轴上的排列方式 */align-self: center;/* 3.order控制子项的排列顺序,越小越靠前,默认为0 */order: inherit;
}

仿携程首页小案例


四、关于rem

01.解决问题:

​ 如何让高度也自适应 ?

02.相关概念

  • em——是相对于父元素的字体大小进行的单位设置,浏览器默认(1em=16px)

  • rem——即root em,是相对于HTML元素(根)的字体大小进行的单位设置

03.优点

  • 每个页面只有1个html标签,可以通过修改HTML中文字大小font-size来改变页面中元素的大小,进行整体控制

  • 文字大小随屏幕大小变化

  • 高度自适应

  • 高度、宽度等比例缩放

04.rem适配

  • 是为了让一些不能等比自适应的元素,在设备尺寸改变时,等比例适配当前设备

  • 主要使用媒体查询,根据不同设备按比例设置html的字体大小,然后页面元素使用rem做尺寸单位,当html字体大小变化时,元素尺寸也会发生变化,从而达到等比例缩放的适配

  • less动态计算并设置html根标签的字体大小

  • 将设计稿中的元素宽、高、位置,按照同等比例换算为rem为单位的值

方法:

  • 首先要有一套标准的屏幕尺寸,比如width:750px

  • 然后要设置html标签里的文字大小:font-size

    在这里要先划分屏幕的份数,比如划分为15份(其它值也可以),再用屏幕尺寸除以份数,这里是 750/15=50px;

    那么这里html标签里的文字大小为:font-size:50px;

    那么整个页面中的元素尺寸有这样一个换算关系:1rem = 50px

  • 最后,在页面中的元素的单位都需要换算成rem单位的,其rem值 = 元素本身尺寸(px)/根标签字体大小,如:100x100px的图片尺寸就设置为:2x2rem

五、关于媒体查询

01.媒体查询——media query

  • 媒体查询可以针对不同的屏幕尺寸设置不同的样式

02.怎么定义

  • 如何声明一个媒体查询?

    @media 媒体类型 关键字 媒体特性

    • 媒体类型:all | print | screen

    • 关键字:and | not | only

    • 媒体特性:width | max-width | min-width

      【注意】CSS中的 max-widthmin-width 都包含 “等于

    @media screen and (max-width: 800px) {body {background-color: #f00;}
    }@media screen and (min-width: 801px) {body {background-color: #f0f;}
    }p {font-size: 1rem;
    }/* 	以上样式:在屏幕上 并且 最大宽度是800px 时,设置一种样式最小宽度是801px时,改变为另一种样式 
    */
    /* 即,根据不同的屏幕尺寸,改变为不同的样式 */
    

03.如何引入资源

link中引入

<link media="screen and (min-width:320px)" rel="stylesheet" href="123.css">


六、初识less语法

01.less简介

  • less:一门CSS扩展语言,也称为CSS预处理器,引入了变量、运算、函数等功能

02.less变量

  • 以@为前缀

  • 不能包含特殊字符

  • 不能数字开头

  • 区分大小写

  • 语法:

    @color:red;div {color:@color;
    }
    

03.less编译

借助插件

04.less嵌套

  • 语法

    .father{width: 100px;height: 100px;background-color: red;.son {width: 50px;height: 50px;background-color: blue;}
    }
  • 交集 | 伪类 | 伪元素选择器

    • 内层选择器的前面没有添加**&符号**,则会被解析为外层选择器的后代
    • 如果有**&符号**,则被解析为伪类
    .father{width: 100px;height: 100px;background-color: orange;&:hover{width: 200px;}
    }
    

05.less运算

  • less中,任何数字、颜色、变量都可以参加运算,提供 加(+)、减(-)、乘(*)、除(/) 四则运算方式

  • 运算符左右两侧有空格

  • 两个不同单位的值运算,以第一个值的单位为主

  • 只有一个值有单位,以该单位为主

    div {width:100px - 2;height:(100px + 30) * 2;background-color: #666 - #333;
    }
    

七、响应式布局

(未完待续~~~)


http://chatgpt.dhexx.cn/article/9ab0uUP0.shtml

相关文章

css:居中的几种布局方式

居中布局的方式 初始状态 <!DOCTYPE html> <html lang"en"> <head><style>.outer {width: 100px;height: 100px;border: 1px solid #f00;}.inner {width: 30px;height: 30px;background-color: #000;}</style> </head> <bo…

常见的CSS页面布局方式

详情&#xff1a;CSS页面结构是我们日常生活中最常使用到的&#xff0c;当然目前可能大家用的最多的是elementUI实现布局&#xff0c;简单方柏霓&#xff0c;下面介绍几种常见的原生页面布局的方式 公共的样式部分 <style>* {margin: 0;padding: 0;}.layout {margin-bot…

css的几种布局方式都在这

说道布局方式&#xff0c;是我们经常遇到的问题&#xff0c;下面我们就来讲解css的常见的一些布局方式。 1.双飞翼布局&#xff08;两边定宽&#xff0c;中间自适应&#xff09; 主要是通过浮动与margin实现&#xff0c;代码如下&#xff1a; <!DOCTYPE html PUBLIC &quo…

css横向布局的几种方式

首先我们先看看 html部分 bodyTip 内的三个标签我们需要让他们横向显示并且根据浏览器宽度平均显示 <body> <!--头部--> <div class"head">我是头部 </div> <div class"bodyTip"><!--左边--><div class"lef…

CSS 多种布局方式

​css布局是工作中最常碰到的&#xff0c;同时也是笔试 or 面试中会被问到的问题&#xff0c;故在本文整理了css多种布局方式&#xff0c;以供参考。 此篇较长四千五百字左右&#xff0c;读者可分三部分阅读&#xff0c;水平居中布局&#xff0c;垂直居中布局&#xff0c;水平…

HTML+CSS第十课:常见的3种网页布局方式:表格布局、DIV+CSS布局、框架布局

知识点:网页布局的方式 1、网页布局 常见的页面布局方式:表格布局、DIV+CSS布局、框架布局。 表格布局:用来显示较多的数据,如OA系统、ERP系统或CRM系统。(一般用在局部)DIV+CSS布局:相对来说最灵活的布局方式,完全实现内容和样式的分离。框架布局:通常用在网站后台…

css常见布局方式

css常见布局方式 0、前言1、两栏布局1.1 浮动 margin1.2 浮动 BFC&#xff08;overflow: hidden&#xff09;1.3 定位 margin-left1.4 给父容器设置flex布局&#xff0c;左盒子固定宽度&#xff0c;然后给右子元素设置 flex: 1。1.5 table布局 2、三栏布局2.1 float布局2.2 …

CSS布局的三种方式

绝对定位 绝对定位&#xff1a; ​ 属性&#xff1a;position 值&#xff1a;absolute <style> p.abs{position: absolute;left: 150px;top: 50px; }</style><p >正常文字1</p> <p >正常文字2</p> <p class"abs" >绝对定…

CSS五种布局方式

是CSS知识体系的重中之重 早期以table为主&#xff08;简单&#xff09; 后来以技巧性布局为主&#xff08;难&#xff09; 现在有flexbox/grid(偏简单) 响应式布局是必备知识 常用布局方法 table表格布局 <!DOCTYPE html> <html lang"en"> <head&…

CSS+DIV三种布局方式

在学习了盒模型、块级元素和行内元素得到概念后&#xff0c;我们来说一下CSS的一个比较重要的用途&#xff1a;布局。以前我们学过表格可以起到布局页面的作用&#xff0c;比如布局表单&#xff0c;但实际工作表格的布局通常也仅仅是用来布局表单。绝大多数的模具工作是由CSSDI…

Css 常用布局方式

1.CSS 参考手册 2.元素的分类 首先我们要知道一共有几种元素 1.行内元素&#xff08;可以与其他行内元素位于同一行&#xff0c;不会以新行开始高度、宽度不能设置&#xff09; 2.块级元素&#xff08;每个块级元素都从新的一行开始&#xff0c;其后的元素也另起一行。默认…

css五大布局方式详解

css布局方式 table布局float布局flex布局响应式布局Grid布局 table布局 table布局在如今已经很少使用&#xff0c;原因是&#xff1a;table布局比其它html标记占更多的字节&#xff0c;会阻挡浏览器渲染引擎的渲染顺序&#xff0c;会影响其内部的某些布局属性的生效。 使用…

css中常见的布局方式

1.流体布局 流体布局是网页缩小和放大时网页布局会随着浏览器的大小而改变。 两边的宽度是固定的&#xff0c;中间的宽度是可以根据屏幕的大小进行改变的 思路: 给左右两边的盒子设置固定的宽高并设置左右浮动&#xff0c;中间盒子通过设置margin-left和margin-right(margin的…

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…