首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你不知道的 CSS 文档流技巧,让布局更简单

比如第一个例子中,父容器的宽度为 470 = 3*150 + 20。如果在不使用 flex 布局的情况下,你想让三个元素自适应屏幕宽度有什么好办法?...或者你想把三个元素扩展成四个,这个时候你就需要手动计算每个元素的宽度。这样好像很是麻烦。 那今天就来说说,如何利用「流」的特性,解决平时在项目中遇到的一些布局问题。...块级元素默认会充满整个屏幕,具有自适应性,而内联元素默认则是水平排列。 你可以想象为块级元素就想是水流一样充满容器,而内联元素就是漂浮在水里按照从左到右排列的物体。...在此之前我相信很多伙伴在项目汇总遇到过超出宽度的情况,但很少有人去探究,所以很多人都会发挥他特有的计算能力,然后写出如下代码。...因为这里我提到了盒模型,你会想到把上面的案例,改变下盒模型不就行了吗?

43410

Css-移动端适配总结 前言PC端Mobile总结参考&引用

可以使用screen.width/height来获取我们屏幕的宽高设备像素。...screen.width // 1920 screen.height // 1080 如果你给一个元素的宽度为width: 192px; 那么你的屏幕上(假设你的屏幕宽度像素为1920)可以在一行上显示...听起来有点难以理解, 下面讲一个例子: 假设, 你给某个div元素设置了width:50%的样式后, 当你缩小放大浏览器的时候,你会发现div元素总是占据了50%的宽度,我们知道,宽度百分比是依赖它的包裹元素...(假设是body), 那么问题就回到了body的宽度身上。...6.缩小viewport 原理是使用meta标签中的viewport, 也就是上面所说的设置viewport, 将整个页面缩小0.5倍, 这个主要是麻烦在其他的元素也要跟着放大一倍再缩小, 为了这个小问题而这样

2.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用这种技巧,可以大大地提高前端布局效率

    上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 在布局中,对于每块功能的 DOM 结构,我们一般使用一个带有 wrapper 类元素把它包裹起来,让代码或者网页内容更易于阅读。... div> 如果没有wrapper,子元素将粘附在屏幕的边缘。这可能会让用户非常恼火,尤其是在大屏幕上。 ?...padding作为一种保护策略,避免在宽度不足时让 wrapper 粘在视口边缘。...使用百分比的 wrapper 我收到了有关使用百分比宽度(如max-width:90%)用于包装器而不是使用padding-left和padding-right的答复。...在每个项目中,我都准备了一组用于margin和padding的实用工具类,在必要时使用它们,考虑下图。 ?

    3.9K20

    解决浏览器缩小布局变乱问题

    在编写pc端网页的时候我遇到了一个问题,就是我采用float浮动布局时,当浏览器缩小,发现布局乱了。通过仔细测试,我找到了解决的办法。...float浮动布局变乱的原因是由于浏览器屏幕缩小,导致宽度变化,使之在宽度上无法装下浮动的元素,这些元素会自动向下浮动。知道了这个原理我们就可以想出解决办法了。...先说第一种办法,就是将最外层的div层的宽度设死,设置为浏览器最大的宽度,这样在浏览器屏幕缩小的时候,div的宽度不会变化,也就不会产生向下浮动的问题。...pc的宽度都一致,所以就产生了在一些屏幕小的电脑上在浏览器最大化的时候也会产生横向滚动条,这很影响浏览性。...就是获取屏幕的宽度,将最外层的div宽度设置为屏幕的宽度,内层div的宽度采用百分比的形式即可。

    3K10

    【最佳网页宽度及其实现】「建议收藏」

    大家好,又见面了,我是全栈君。 1. 设计网页的时候,确定宽度是一件很苦恼的事。 以minifun.cn为例,根据Google Analytics的统计,半年多以来,访问者的屏幕分辨率一共有81种。...举例来说,一张400px宽的图片,在800px的屏幕上会占据50%的宽度,而在1920px的屏幕上(Windows Vista的流行设置),只占据20%。 2....第二种:采用弹性布局(Fluid Width Layout),实现网页宽度的自适应。 第一种方法的优点是,可以根据不同屏幕分辨率,采用完全不同的布局,缺点是要设计和维护多张样式表,比较麻烦。...需要注意的是,这几行的语句都针对整个页面,即body标签或者最外层的那个div区域。 margin: 10px auto; 这一行保证了网页在任何分辨率下,都会居中。...另外,如果想让内层的各个区块也自动伸缩,它们的宽度可以采用百分比的形式,比如: #div-left{ width:50%; } #div-right{ width:50%; } 最后的效果和源码下载请查看这里

    90810

    css多浏览常见问题

    最好事先声明, 以避免不必要的麻烦....解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ” 需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个...+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找^^ 1、在mozilla firefox和IE中的BOX模型解释不一致导致相差...这里,图片会当作背景显示出来,而真正的文字由于设定了-2000像素这个缩进,它们会出现在屏幕左边2000点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。...当然,有时候定位的方法而不是边距的方法更好些。 10、直通到屏幕底部的背景色 在垂直方向是进行控制是CSS所不能的。

    1.1K30

    CSS尺寸单位介绍

    X 900px; 这里会遇到另一种情况 浏览器缩放 缩放是缩放CSS像素(缩放比例为1时,一个CSS像素等于一个屏幕像素),就是在屏幕分辨率不变的情况下,用户对浏览进行了缩放 强调一点,用户的缩放行为是对浏览器进行的...,能显示的css的px数也不同, 如果我们写一个div,宽度是375px,375px在这个屏幕(iPhone6)上是刚刚满屏,因为这个屏幕宽度刚刚是375px( 设备独立像素), 当我们换另一个宽度是414px...的设备(iPhone6Plus)时,这个宽度375px的div就无法铺满这个屏幕,同样的当换一个iPhone5(320px),又会出现滚动条,安卓机的宽度更是五花八门,使用media媒体查询不靠谱,因为它不能覆盖所有的机型宽度...750px(750px是常规宽度,当然也可以是640px或是其他宽度,但是整个项目,宽度必须统一),唯一不变就是就屏幕宽度,我们的html的font-size(rem)只取决于设备宽度 于是 document.documentElement.style.fontSize...最终的效果就是,你开发时在iphon6的设计稿上量了多少px,就写多少rpx就行了,完美适配,perfect! ?

    1.5K30

    How to make your HTML responsive by adding a single line of CSS

    CSS Grid 来创建一个超酷的图像网格图,它将根据屏幕的宽度来改变列的数量。...最精彩的地方在于:所有的响应特性被添加到了一行 css 代码中。这意味着我们不必将 HTML 与丑陋的类名(如col-sm-4, col-md-8)混杂在一起,也不必为每个屏幕创建媒体查询。...设置 在本文中,我将继续使用我在第一篇 CSS Grid 布局教程文章中的网格布局。然后,我们将在文章末尾添加图片。下面是我们初始化网格的外观: ?...现在,栅格将会根据容器的宽度调整其数量。它会尝试在容器中容纳尽可能多的 100px 宽的列。但如果我们将所有列硬写为 100px,我们将永远没法获得所需的弹性,因为它们很难填充整个宽度。...浏览器兼容性 在结束本文前,我提下浏览器支持情况,在撰写本文时,全球77%的网站将支持 CSS Grid,而且比例还在逐步攀升。 我想想2018将是 CSS 网格布局的元年。

    1.5K10

    CSS尺寸单位介绍

    X 900px; 这里会遇到另一种情况 浏览器缩放 缩放是缩放CSS像素(缩放比例为1时,一个CSS像素等于一个屏幕像素),就是在屏幕分辨率不变的情况下,用户对浏览进行了缩放 强调一点,用户的缩放行为是对浏览器进行的...,能显示的css的px数也不同, 如果我们写一个div,宽度是375px,375px在这个屏幕(iPhone6)上是刚刚满屏,因为这个屏幕宽度刚刚是375px( 设备独立像素), 当我们换另一个宽度是414px...的设备(iPhone6Plus)时,这个宽度375px的div就无法铺满这个屏幕,同样的当换一个iPhone5(320px),又会出现滚动条,安卓机的宽度更是五花八门,使用media媒体查询不靠谱,因为它不能覆盖所有的机型宽度...750px(750px是常规宽度,当然也可以是640px或是其他宽度,但是整个项目,宽度必须统一),唯一不变就是就屏幕宽度,我们的html的font-size(rem)只取决于设备宽度 于是 document.documentElement.style.fontSize...最终的效果就是,你开发时在iphon6的设计稿上量了多少px,就写多少rpx就行了,完美适配,perfect! ? ---- 文章转载与公众号:前端陌上寒 ----

    1.7K20

    移动web开发(5)之rem适配布局

    @media可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面....> /* 这句话的意思是:在我的屏幕吧上,且最大的宽度为800像素,就设置成我们想要的样式 */ @media screen and (max-width:800px)...,使用媒体查询修改通过判断屏幕的大小改变html字体的大小 让文字垂直居中利用的是line-height,这里也可以 不定死,用rem单位,将line-height设置成height一样就可以. <...其实写了两个CSS样式 当屏幕尺寸最小为320px时: .box div { width: 100%; height: 100px; background-color: pink...; } .box div:nth-child(2) { background-color: royalblue; } 当屏幕尺寸最小为640px时: .box div { float:

    1.2K30

    useLayoutEffect的秘密

    处理“更多”按钮 当我们胸有成竹的把上述代码运行后,猛然发现,我们还缺失了一个重要的步骤:如何在浏览器中渲染更多按钮。我们也需要考虑它的宽度。 同样,我们只能在浏览器中渲染它时才能获取其宽度。...visibleItems.length - 1 : 0; }; 从React角度来看,我们既然得到了这个数字,我们就需要触发组件的更新,并让它删除不应该展示的组件。...,但是主要的逻辑就是实现在响应式的组件,并且能够在屏幕大小发生变化时重新计算宽度。...「对于浏览器来说,整个过程将被视为一个任务」。因此,它将执行每一行,然后绘制最终结果:带有黑色边框的 div。 我们「无法在屏幕上看到这个红绿黑的过渡」。...我们最不希望的是我们整个 React 应用程序变成一个巨大的同步任务。 ❝只有在需要根据元素的实际大小调整 UI 而导致的视觉闪烁时使用 useLayoutEffect。

    29110

    从零开始学 Web 之 CSS3(七)多列布局,伸缩布局

    所以,为了最大效率的使用大屏幕显示器,页面设计中需要限制文本的宽度,让文本按多列呈现,就像报纸上的新闻排版一样。...比如:如果设置的列的宽度大于自动计算的列的宽度,那么实际显示的效果以设置的列的宽度为准;如果设置的列的宽度无法填充整个屏幕,那么实际的宽度可能大于设置的宽度; 如果设置的列的宽度小于自动计算的列的宽度...设置列间隙大小*/ column-gap: 50px; /*4.设置列宽 原则:取大优先 1.如果人为设置宽度更大,则取更大的值,但是会填充整个屏幕,意味最终的宽度可能也会大于设置的宽度...--填充满整个屏幕 2.如果人为设置宽度更小,使用默认计算的宽度*/ column-width: 200px; } h4{ /*设置跨列显示:取值:1 / all */...stretch:(默认值)拉伸:让子元素在侧轴方向上进行拉伸,填充满整个侧轴方向。

    4K10

    vue.js项目中用原生js实现移动端的轮播图

    Vue.js项目中封装轮播图组件 前言 一、了解原生js移动端的事件 二、轮播图实战 三、效果图 结束语 前言 今天我在vue.js项目实战开发过程中遇到了实现轮播图效果的问题,因为不想因为一个轮播图而引用整个...: 事件 作用 touchstart 手指放到屏幕上触发 touchmove 手指在屏幕上移动触发(高频触发) touchend 手指离开屏幕触发 touchcancel 系统取消touch事件时触发..."的div标签作为内部class="each_point"的div标签的父标签,用来开启flex布局,让轮播图的中下方的小圆点有序排列,该标签内部主要内容就是轮播图中间下方的进度条小圆点 第二部分:script...= document.getElementsByClassName('slide') //获取轮播图的宽度 this.bannerwidth = currentimg[..., 触发methods中的startPlay方法,开启轮播功能 在触摸事件中主要运用 StartPoint - EndPoint 的值使得图片跟着手指的滑动方向同步移动, 并且在触摸开始时,关闭自动轮播定时器

    9.1K20

    JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

    }*/ 这里我需要解释一下我上面说的“浏览器有效区域”这句话,下图中黑色边框区域就是浏览器的有效区域,而整个图片显示的区域就是 “显示器屏幕区域” ?...是鼠标相对以浏览器有效区域的的Y轴坐标, 上图中我的鼠标在浏览器有效区域里 的x坐标是200px,y坐标是0;而screenX,screenY则是相对以整个显示屏幕区域而言的。...上图中 相对于“整个显示屏幕区域而言” 鼠标的x坐标是200px,y坐标是85px,所以screenX和screenY正是获取这两个值,所以screenX是200px,screenY是85px ?...当我的鼠标移动到div的右下角的时候,screeX是200px,screenY是185px,因为div本身的宽度我定义的时200px,高度100px; 接下来说一说offsetX和offsetY属性 offsetX...高50px;为了容易理解,我特意给按钮添加个margin:50px让大家看得效果明显一些; ?

    1.3K40

    最佳网页宽度及其实现

    举例来说,一张400px宽的图片,在800px的屏幕上会占据50%的宽度,而在1920px的屏幕上(Windows Vista的流行设置),只占据20%。 2....第二种:采用弹性布局(Fluid Width Layout),实现网页宽度的自适应。 第一种方法的优点是,可以根据不同屏幕分辨率,采用完全不同的布局,缺点是要设计和维护多张样式表,比较麻烦。...需要注意的是,这几行的语句都针对整个页面,即body标签或者最外层的那个div区域。 margin: 10px auto; 这一行保证了网页在任何分辨率下,都会居中。...min-width: 780px; max-width: 1260px; 这二行规定了网页的最小和最大宽度。注意,IE6不支持这二行,即它们在IE6中是无效的。...另外,如果想让内层的各个区块也自动伸缩,它们的宽度可以采用百分比的形式,比如: #div-left{ width:50%; } #div-right{ width:50%; } 最后的效果和源码下载请查看这里

    1.4K30

    JS:用rem来做响应式开发

    电脑版的商城昨晚做完了,今天赶着做手机端的,提到手机端的网站第一个想到的就是要 适应不同手机屏幕的宽度,保证在不同手机上都能正常显示给用户,我之前做这类网站都是无脑引进bootstrap的。...所以body默认宽度是屏幕宽度 (PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了,这只适合布局简单的页面,复杂的页面实现很困难。...(你还可以设置更多节点) 用媒体查询的话要保证每个像素下都有对应的适配效果显然你要设置更小的宽度范围; 3.还有就是css3的单位rem: rem就是将根节点html的font-size的值作为整个页面的基准尺寸...那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕...的font-size最小值为10px;在小于这个值就不会再小了,这是我当时碰到的问题花了快两个小时上网找,一遍遍演示也都没想明白,最后终于查到这么个非人为原因.

    6.2K10

    第124天:移动web端-Bootstrap轮播图插件使用

    > 二、轮播图使用中的问题 1、由于轮播图片超宽造成的影响   - 美工为了在不同屏幕下更好地展示将图片两边做的非常宽,但是我们大多数情况的页面宽度都无法满足这样的图片宽度   - 而且Bootstrap..."大图路径")     + 通过JS的方式获取屏幕的宽度;     + 判断屏幕宽度是否小于一定的值(如:768)     + 根据判断情况决定使用具体的大图还是小图 三、javascript...1、根据屏幕大小设置轮播图片 1 var windowWidth = $(window).width(); // 获取屏幕宽度 2 var isSmallScreen = windowWidth...,当屏幕特别小时,效果很差   - 所以当使用小图时,改用img的方式 1 // 因为我们需要小图时 尺寸等比例变化,所以小图时我们使用img方式 2 if (isSmallScreen) { 3...整个板块在超小屏幕下是隐藏起来的 + 只需要给当前板块加上hidden-xs的class

    6.3K40

    flex弹性布局

    flex布局的主要思想是让容器有能力让其子项目能够改变其宽度、高度(甚至是循序),以最佳的方式来填充keys空间(其主旨是适应所有类型的显示设备)。 那么,什么是容器,什么又是项目。...) | 不换行,项目元素会按照自身宽度的百分比进行宽度缩放。...| | wrap | 项目元素宽度不变化,单行遇剩余宽度不够则换行,第一行在上方。 | | wrap-reverse | 项目元素宽度不变化,单行遇剩余宽度不够则换行,第一行在下方。...所以,轴线之间的间隔比轴线与边框的间隔大一倍。 stretch(默认值) 轴线占满整个交叉轴。 具体效果如下图 ?...如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

    1.9K20

    《从案例中学习JavaScript》之酷炫音乐播放器(三)进度条音轨

    Paste_Image.png 我们希望让它紧挨着播放器屏幕的底部,只需要给它一个定位就行了。关于元素的定位,在之前的章节中我已经详细地讲过,所以在这里就不再赘述了。...6.gif 在图中可以很清晰地看到,我们已经能拿到正在播放的时间了。 接下来,我们将这个动态变化的时间在屏幕上显示出来。...其中最关键的一点就是audio标签元素自带的ontimeupdate 事件,我们可以在里面获取总时长和当前时长,然后就可以计算出百分比,通过给div动态设置宽度来实现进度条的效果。...通过随机数让音轨动起来 之前的章节 js常用方法和一些封装(2) -- 随机数生成 中,正好有一个随机数的方法,所谓养兵千日,用兵一时啊。...在工作的日子里,我曾经迷茫过,尤其是刚开始做编程的工作时,非常迷茫。 每天都是增删改查,增删改查,就觉得很没意思。 一段时间下来,我开始迷茫了,不知道自己该学一些什么东西。

    1.5K60
    领券