如何实现响应式布局

这篇具有很好参考价值的文章主要介绍了如何实现响应式布局。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

响应式布局是指同一个页面在不同屏幕尺寸下有不同的布局。

1.媒体查询

媒体查询是最基础的实现响应式的方式
使用@media关键字
媒体查询是阶梯性的,不连续,没有完全响应

2.使用百分比、rem、vw、vh等相对单位来设置元素的宽度、高度、字体大小等

1.rem与em

rem(root em) 是相对于根元素(通常是 标签)的字体大小。适用于全局缩放和响应式布局.
em 是相对于父元素的字体大小。具有继承性,适用于局部尺寸的调整。

2.vw、vh、vmax、vmin

先来了解下网页视口相关:

屏幕的宽度和高度:window.screenWidth、window.screenHeight
网页视口的宽度和高度:window.innerWidth 、 window.innerHeight
body的宽度和高度:document.body.clientWidth、document.body.clientHeight

如何实现响应式布局,前端CSS/HTML面试题,前端

  1. 网页视口的高度=100vh
  2. 网页视口的宽度=100vw
  3. vmax 取vh和vw两者的最大值
  4. vmin 取vh和vw两者的最小值 所以1vh是网页视高度的百分之一,1vw是网页视口宽度的百分之一

3.Flexbox

主轴(Main Axis)、交叉轴(Cross Axis)、Flex容器(Flex Container):包含Flex项目的容器。、Flex项目(Flex Item)

设置Flex属性:使用Flex属性来控制Flex项目在主轴和交叉轴上的行为。

/* 容器属性 */

.container {
    /* 定义为flex布局 */
    display: flex; /* 或 inline-flex */

    /* 主轴的方向 */
    flex-direction: row; /* 默认值,从左到右。还可以是row-reverse、column或column-reverse */

    /* 是否换行 */
    flex-wrap: nowrap; /* 默认值,不换行。还可以是wrap或wrap-reverse:当项目无法放在同一行时,它们会从容器的底部开始并向上堆叠 */

    /* flex-direction 和 flex-wrap 的简写 */
    flex-flow: row nowrap; 

    /* 主轴上的对齐方式 */
    justify-content: flex-start; /* 默认值,左对齐。还可以是flex-end(右对齐)、center(中心对齐)、space-between(平分空间,左右顶边)、space-around(两侧空间是中间一半)或space-evenly(两侧空间等于中间) */

    /* 交叉轴上的对齐方式 */
    align-items: stretch; /* 默认值,项目被拉伸以适应容器的交叉轴宽度。还可以是flex-start、flex-end(从交叉轴底部排列)、center(交叉轴中间排列)或baseline */

    /* 多行的交叉轴上的对齐方式 */
    align-content: stretch; /* 默认值,行之间拉伸。也可为flex-start、flex-end、center、space-between或space-around */

}
/* 项目属性 */

.item {
    /* 排列顺序 */
    order: 0; /* 默认值。可以是任何整数 */

    /* 放大比例 */
    flex-grow: 0; /* 默认值。定义在分配多余空间时,项目的放大比例 */

    /* 缩小比例 */
    flex-shrink: 1; /* 默认值。定义在减少空间时,项目的缩小比例 */

    /* 初始大小 */
    flex-basis: auto; /* 默认值。初始大小 */

    /* 上述三个属性的简写 */
    flex: 0 1 auto; /* 使用flex-grow, flex-shrink 和 flex-basis的默认值 */
	flex: 1 1 0%; /* flex:1缩写 让所有Item平均分配剩余空间*/
    /* 单个项目的对齐方式 */
    align-self: auto; /* 默认值,与继承容器的align-items值。还可以是flex-start、flex-end、center、baseline或stretch。控制交叉轴单独布局,没有与之对应的单独控制主轴的布局,除非换grid方法或加margin */
}

flexbox计算题

问题1:
你有四个项目,宽度分别为100px、150px、200px和250px,其flex-shrink值分别为2、1、3和0。
如果需要在这四个项目之间减少总共300px的空间,每个项目会减少多少像素?
解:
项目1的缩小比例为 2/6 = 1/3
项目2的缩小比例为 1/6
项目3的缩小比例为 3/6 = 1/2
项目4不会缩小,因为它的flex-shrink值为0。

项目1会减少:300px * 1/3 = 100px
项目2会减少:300px * 1/6 = 50px
项目3会减少:300px * 1/2 = 150px
项目4不会缩小。

最后宽度加上flex-basis

实现一个响应式布局:一个父盒子,里面三个子盒子,左右固定在两侧,固定宽高200px ,中间盒子响应式,有多少种实现方法,给出代码

响应式布局可以通过多种方式实现。以下列举了几种常用的方法来实现所描述的布局:

1. 使用Flexbox

.parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.child-left,
.child-right {
    width: 200px;
    height: 200px;
    flex-shrink: 0; /* 防止缩小 */
}

.child-center {
    flex-grow: 1; /* 允许增长以填充剩余空间 */
    height: 200px;
}

2. 使用Grid

.parent {
    display: grid;
    grid-template-columns: 200px 1fr 200px;
}

.child-left,
.child-right,
.child-center {
    height: 200px;
}

3. 使用浮动

.child-left,
.child-right {
    width: 200px;
    height: 200px;
    float: left;
}

.child-center {
    margin-left: 200px;
    margin-right: 200px;
    height: 200px;
}

4. 使用定位 (不推荐,因为中间内容可能会被两边的内容遮挡)

.parent {
    position: relative;
}

.child-left,
.child-right {
    width: 200px;
    height: 200px;
    position: absolute;
    top: 0;
}

.child-left {
    left: 0;
}

.child-right {
    right: 0;
}

.child-center {
    padding-left: 200px;
    padding-right: 200px;
    height: 200px;
}

以上提供的是几种不同的实现方法,每种方法有其适用的场景。现代Web开发中,Flexbox和Grid是比较推荐的方法,因为它们提供了更多的灵活性和对响应式设计的支持。文章来源地址https://www.toymoban.com/news/detail-694811.html

到了这里,关于如何实现响应式布局的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面试题更新之-什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?css实现响应式设计的方案

    响应式设计(Responsive Design)是一种网页设计和开发的方法,旨在使网站能够在不同设备、屏幕尺寸和窗口大小下提供最佳的用户体验。 传统的网页设计通常针对特定的屏幕尺寸进行布局和样式定义,这导致在不同设备上浏览同一个网站时会出现排版错乱、内容溢出或者字体

    2024年02月16日
    浏览(67)
  • HTML5+CSS3学习笔记(九)前端页面六大布局(文档流布局、浮动布局、定位布局、表格布局、弹性布局、网格布局)

    本系列更多文章,可以查看专栏 HTML+CSS学习笔记 块级元素自上至下垂直排列,行内元素自左至右水平排列 块级元素独占一行,行内元素不会另起一行 默认情况下,height和width决定内容区的大小;内容区、内边距和边框构成可见区域的大小;外边距决定元素的位置 更多内容可

    2024年02月02日
    浏览(64)
  • 前端基础面试题(HTML,CSS,JS)

    前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库  web前端面试题库 VS java后端面试题库大全 代码结构:  使页面在没有css的情况下,也能够呈现出好的内容结构 有利于SEO:  爬虫根据标签来分配的权重,因此可以和搜索引擎建立良好的沟通,帮助爬虫抓

    2024年02月09日
    浏览(53)
  • 常见前端基础面试题(HTML,CSS,JS)(三)

      类型转换可以分为两种, 隐性转换 和 显性转换 主要分为三大类:数值类型、字符串类型、布尔类型 三大类的原始类型值的转换规则我就不一一列举了 数值类型(引用类型转换) 字符串类型(引用类型转换) 类型 转换前 转换后 number 4 4 string \\\"1\\\" 1 string \\\"\\\" 0 boolean true 1 b

    2024年02月12日
    浏览(61)
  • 利用HTML和CSS实现的浮动布局

    代码如下 这是UI设计图 下面为实现的效果图

    2024年02月01日
    浏览(48)
  • ChatGPT给出的前端面试考点(html+css+JS)

    HTML HTML是什么,它的主要作用是什么? 什么是DOCTYPE,为什么在HTML文档中使用它? HTML5相对于之前的HTML版本有哪些主要的新特性? 解释语义化HTML的概念。为什么要使用语义化标签? 如何在HTML中嵌入JavaScript和CSS? 什么是表单,如何在HTML中创建一个表单? 什么是响应式图片

    2024年01月21日
    浏览(62)
  • 前端面试:常见的HTML、CSS和JavaScript问题解答

    前端开发面试中,HTML、CSS和JavaScript是必考点。以下是常见的HTML、CSS和JavaScript问题的解答,希望能对前端开发者的面试有所帮助。 文档类型(doctype)的作用是什么? 文档类型用来告诉浏览器当前页面使用哪种HTML标准进行渲染。不同的HTML标准支持的标签和属性有所差异,因

    2024年02月08日
    浏览(75)
  • 纯HTML+CSS实现可响应式登陆界面

    先上效果视频: 演示视频 基本思路: 一:日月切换模块 1. 用阴影画出太阳和月亮 2.用transform: translate; transform: rotate;两个属性实现日月交换效果 3.使用label for=\\\"\\\" hidden标签实现左上角滑块与复选按钮的链接 4.用兄弟选择器“~”实现一个元素对另一个元素的控制 二:注册界

    2024年02月04日
    浏览(43)
  • [HTML]Web前端开发技术10(HTML5、CSS3、JavaScript )CSS+DIV页面布局,固定定位,相对定位relative,绝对定位absolute,层定位的应用——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 课后练习 网页标题:固定定位 网页标题:相对定位relative 网页标题:绝对定位absolute 网页标题:层定

    2024年02月02日
    浏览(59)
  • 如何实现响应式布局

    响应式布局是指同一个页面在不同屏幕尺寸下有不同的布局。 媒体查询是最基础的实现响应式的方式 使用@media 媒体查询是阶梯性的,不连续,没有完全响应 rem(root em) 是相对于根元素(通常是 标签)的字体大小。适用于全局缩放和响应式布局. em 是相对于父元素的字

    2024年02月10日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包