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

CSS入门指南-4:页面布局

固定宽度布局大小不会随用户调整浏览器窗口大小变化,一般是900到1100像素宽。...为什么正常情况下都应该保持元素height属性默认值auto不变呢?很简单,只有这样元素才能随自己包含内容增加而在垂直方向上扩展。...这样扩展元素会把下方元素向下推,布局也能随着内容数量增减垂直伸缩。假如你明确设定了元素高度,那么超出内容要么被剪掉,要么会跑到容器之外——取决于元素overflow属性设定。...给容器内部元素应用内边距和边框 把外边距和内边距应用到内容元素上确实有效,不过这样前提是这些元素没有明确设定宽度,这样内容才会随内外边距增加缩小。...用负外边距实现 实现三栏布局且让中栏内容区流动(不固定)核心问题是处理右栏定位,并在中栏内容区大小改变时控制右栏与布局关系。

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

【CSS】课程网站 Banner 制作 ① ( Banner 栏测量 | Banner 盒子模型代码 | 代码示例 )

盒子模型尺寸测量 2、背景测量切图 二、Banner 盒子模型代码 1、HTML 标签结构 2、CSS 样式 3、显示效果 一、Banner 栏测量 ---- 1、盒子模型尺寸测量 该 Banner 条宽度填充整个浏览器...条版心尺寸为 1200 x 420 像素 , 如下图所示 : 版心左侧导航栏 尺寸为 190 x 420 像素 ; Banner 条版心 右侧 课程表 , 尺寸 228 x 300...-- Banner 模块 - 结束 --> 2、CSS 样式 /* Banner 条样式 */ .banner { /* 宽度自动填充整个浏览器, 这里只设置高度 */...外边距 */ margin-right: 60px; } /* 导航栏设置 左浮动 */ .nav { float: left; } /* 导航栏内 无序列表 设置左浮动 */ .nav....user-name { float: left; /* 名字与头像间隔 6 像素 */ margin-left: 6px; } /* Banner 条样式 */ .banner { /* 宽度自动填充整个浏览器

3.9K20

Flutter你竟是这样布局

---- 当学习Flutter的人问你,为什么宽度为100某些小部件在显示时候,宽度不为100像素时,你默认答案是告诉他们将小部件放在Center内,对吗? 不要这样做。...谈判是这样: Widget: 嗨,Parent,我约束是什么? Parent Widget: 你宽度必须在80到300像素之间,高度必须在30到85像素之间。...Container(width: 100, height: 100, color: Colors.red) 想要红色容器为100×100,但不是,因为屏幕会强制使其尺寸与屏幕完全相同。...在这种情况下,容器宽度为4000像素,并且太大而无法容纳在OverflowBox中,但是OverflowBox会尽可能地显示尽可能多内容,不会发出警告。 Example 16 ?..., ] ) 如果使用Flexible不是Expanded,唯一区别是Flexible使其子元素宽度等于或小于其自身宽度Expanded强制其子元素具有与Expeded完全相同宽度

2.3K20

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

这是我们在项目中最常见项目布局方式。 案例一:多个容器按照相同间距水平排列。 ? 案例二:常见菜单导航 ? 看到这两个案例时,你可以先短暂想想平时都是如何实现,很多同学答案应该是这样。...文档流 文档流:是引导网页中元素排列和布局,它默认方向是从左向右,从上下。 「流」具有最大一个特点就是自适应性。你可以把它想象成像水流一样,当水流倒入一个容器时,它会自动充满整个容器。...不仅如此,你也经常会听到「脱离文档流」,比如浮动,绝对定位等都可以脱离文档流,脱离文档流不是本文要说重点,所以就不展开多说,今天主要是聊一聊「流自适应性」。...块级元素默认会充满整个屏幕,具有自适应性,内联元素默认则是水平排列。 你可以想象为块级元素就想是水流一样充满容器内联元素就是漂浮在水里按照从左到右排列物体。...可能有人会说,兄die,我计算能力很惊人,你管着吗,好吧这,波算我输。 那为什么加了宽度属性会超出,不加宽度属性就可以了呢?

41810

一、博客首页搭建搭建《iVX低代码仿CSDN个人博客制作》

我们查看首页标题栏,我们可以把整个标题栏内容设置为左侧一个部分以及右侧一个部分: 左侧为logo 和搜索框,右侧为头像框。...二、头部导航栏制作 思路搞清楚了咱们开始制作头部导航栏吧,首先创建一个相对应用项目,随后点击前台创建一个页面: 点击页面后添加一个主要行,该行将会包裹所有当前页面内容。...,使这个头部行内容跟头部底部有一定距离,更加美观,其实csdn 也是这样做: 当然我们再次设置不止有上下,当然还有左右内边距: 此时设置当前行背景色为白色: 接着设置一下整个页面的背景色为...‘#e7e9ee’: 随后设置往头部之中添加两个行,一个命名为左一个命名为右: 左右两行高度都设置为包裹,并且背景色透明、宽度都为 50%,他们高度给他们自己元素决定就好:...: 页面效果如下: 接着添加一个文本框在logo 右侧,此时直接添加文本框将会超格: 此时设置一下文本框宽度以及左外边距使其距离左侧有一定距离: 接着设置一下输入框字体使其适应当前输入框大小

1.4K20

useLayoutEffect秘密

2. useEffect 导致布局闪烁 假设存在以下场景:有一个「响应式」导航组件,它会根据容器大小来调整其子元素数量。...如果,容器不能容纳这些组件,那么它会在容器右侧显示一个“更多”按钮,点击后会显示一个下拉菜单,其中包含剩余未展示子项目 让我们先从简单逻辑入手,先创建一个简单导航组件,它将呈现一个链接列表:(直接遍历...我们最不希望是我们整个 React 应用程序变成一个巨大同步任务。 ❝只有在需要根据元素实际大小调整 UI 导致视觉闪烁时使用 useLayoutEffect。...因此,任何涉及计算元素实际大小操作(就像我们在 useLayoutEffect 中做那样)在服务器上将不起作用:只有字符串,没有具有尺寸元素。...我们可以向他们显示一些“加载”状态不是菜单。或者只显示一两个最重要菜单项。或者甚至完全隐藏项目,并仅在客户端上渲染它们。这取决于你。

20210

【CSS】课程网站头部制作 ④ ( 搜索栏按钮测量 | 搜索栏按钮代码编写 | 代码示例 )

{ /* 设置左浮动 使其与表单在同一行显示 */ float: left; /* 按钮宽度 50 像素 */ width: 50px; /* 按钮高度 40 像素 但是为了与父容器匹配 这里拉伸到...外边距 */ margin-right: 60px; } /* 导航栏设置 左浮动 */ .nav { float: left; } /* 导航栏内 无序列表 设置左浮动 */ .nav...{ /* 鼠标经过导航栏链接 , 底部显示 2 像素 #00a4ff 颜色实线 */ border-bottom: 2px solid #00a4ff; } /* 搜索栏盒子模型 */ .search...input { /* 设置左浮动 , 方便与右侧按钮进行排列 */ float: left; /* 宽度为 360 像素, 但是左侧有 20 像素内边距变为 340 像素 */ width:...50 像素 */ width: 50px; /* 按钮高度 40 像素 但是为了与父容器匹配 这里拉伸到 42 像素 */ height: 42px; /* 使用图片背景方式设置按钮图片 */

2.3K70

如何使用 CSS 设置和自定义水平和垂直滚动条

滚动条是图形用户界面(UI)中必不可少组件。滚动条允许用户查看超出其容器宽度或高度内容。滚动条还使用户能够查看超出屏幕宽度或高度内容。默认情况下,浏览器会为body内容溢出包含一个滚动条。...另一方面,如果将overflow-y属性值设置为auto,则浏览器只有在目标容器有超出内容时才会添加滚动条。...您可以向网页内容器添加水平滚动条。水平滚动条可以使用户在较短容器内查看一系列横向内容。下面的截图显示了一个橙色容器,其中包含一系列蓝色正方形,这些正方形宽度超出了容器宽度。...依赖默认滚动条意味着用户必须水平滚动整个页面才能查看完整内容。用户还将滚动不需要滚动内容。您目标是确保蓝色正方形只能在橙色容器内查看,如下图所示。...高度属性用于设置水平滚动条厚度,不是宽度属性。

83000

一、首页第一个首页栏制作【仿淘票票系统前后端完全制作(除支付外)】

: 接着添加一个正在热映文本,该文本需要设置其排版,上下左右内边距,否则无法设置其边距框: 接着在这个文本中边框与圆角处设置下边距颜色为主题色(紫红色),只有下边距生效,其他边距都设置为空即可...: 由于每个影片内部也有一定内边距,那么此时我们再设置这个行内边距情况,此时还需要设置这个热映内容高度为 130px,因为内部等下需要设置一个行高度为撑开,如果父容器没有高度给定,那么子元素高度撑开则会无效...宽度,在此需要主要是,右侧购票信息按钮为垂直居中,那么此时就需要给予这个购票信息高度为撑开,再设置垂直对其为居中(如果你父容器没有设置高度,那么撑开无效): 接着在左侧添加文本,文本宽度都为...100%,这样就会占据整个行,使其他元素可以自动换行进行显示,在此需要注意是电影评分这一节,我们发现会有颜色分数,此时可以直接给予一个行,分文本进行显示: 若觉得这个行挨太近,那么此时只需要给予这些行内边距一定大小即可...: 最后我们在右侧添加一个按钮,设置对应文本和颜色: 三、添加导航容器 我们还发现,这个首页导航栏是在下部: 那么此时就需要用到一个导航容器,点击扩展组件,找到导航容器添加到当前页面

8.6K20

学姐叫我看 CSS 新出容器查询,然后把公共组件重构成响应式

这意味着,我们无法根据其父宽度控制它们。 现在你可能会想,这里有什么问题? 喔或,这是一个很好问题。 问题是,只有当视口宽度大于特定值时,开发人员才会使用组件变体。...注意我是如何将每个变体映射到一个特定上下文,不是一个视口。为了进一步证明这一点,我们配合 CSS网格一起使用时,组件行为会有何不同。...我们可以根据当前变化对它们进行排序,但所有的东西都有一个限制。有时,前端开发人员最好处理一个全新组件,不是使用容器查询创建变体。 考虑以下。...然后,如果容器宽度大于180px,将显示用户名。 另一个类似的用例是侧导航。我们可以切换导航项标签位置,从在新行或旁边图标。...当容器很小时,导航项标签是如何从一个新行切换,当有足够空间时,导航项标签是如何靠近导航图标的。 示例地址:https://codepen.io/shadeed/pe...

2.2K30

不动程序设计,不是用户体验师

图1-1是XX项目的所有关于二级导航样式,因为这一块界面不是我做(都是借口),所以规范不太了解,导致在做整个项目的规范时,遇到了极大阻碍。...再来看这个导航样式,在程序员眼中这个导航其实是由两个容器组成,一个容器是:绿色区域+红色区域+蓝色区域,另一个容器是:黄色区域(不可滑动,大小固定)。...第一个容器绿色和蓝色部分(间距)也是固定,所以只有红色区域是可变化,因为红色区域文字个数是可以变化,我们只要给出字体大小即可。...所以对于导航4规范,我们要给出绿色、蓝色、黄色区域宽度;文字(选中、未选中)大小及颜色;黄色区域内图标的大小、间距以及滑动规则就基本可以高度还原出视觉稿样式了。...了解了这些前端知识之后,我们发现再次制做二级导航规范时,过程顺畅很多。 心得 先来总结一下当设计师拥有一定开发思维后好处有哪些? 减少与开发哥哥不必要沟通,推进工作顺利进行。

3.4K50

【CSS】课程网站头部制作 ⑤ ( 用户栏测量 | 用户栏代码编写 | 代码示例 )

* 字体颜色 #666666 */ color: #666666; } /* 用户栏 头像样式 */ .user .user-img { float: left; /* 用户头像 30 像素 容器高...) */ button { border: none; } /* 设置总体背景 */ body { background-color: #f3f5f7; } /* 版心宽度 1200 像素 ,...外边距 */ margin-right: 60px; } /* 导航栏设置 左浮动 */ .nav { float: left; } /* 导航栏内 无序列表 设置左浮动 */ .nav...a:hover { /* 鼠标经过导航栏链接 , 底部显示 2 像素 #00a4ff 颜色实线 */ border-bottom: 2px solid #00a4ff; } /* 搜索栏盒子模型...输入框 */ .search input { /* 设置左浮动 , 方便与右侧按钮进行排列 */ float: left; /* 宽度为 360 像素, 但是左侧有 20 像素内边距变为 340

2.4K30

【CSS】课程网站 Banner 制作 ② ( Banner 栏版心盒子测量 | Banner 版心盒子模型左侧导航栏代码示例 )

像素 左内边距 ; 右侧文字 , 距离测导航右侧有 20 像素右内边距 ; 测量 测导航栏 文本间隔 , 也就是行高 , 从上一行开始到下一行开始位置 , 行高 44 像素 ;...左侧导航 背景是 黑色半透明 背景 ; 使用吸管工具 , 吸取 鼠标移动到 侧导航栏 上颜色值 为 #00b4ff ; 侧导航栏中 , 默认状态下 , 文字默认颜色为白色 ; 二、...外边距 */ margin-right: 60px; } /* 导航栏设置 左浮动 */ .nav { float: left; } /* 导航栏内 无序列表 设置左浮动 */ .nav...输入框 */ .search input { /* 设置左浮动 , 方便与右侧按钮进行排列 */ float: left; /* 宽度为 360 像素, 但是左侧有 20 像素内边距变为 340....user-name { float: left; /* 名字与头像间隔 6 像素 */ margin-left: 6px; } /* Banner 条样式 */ .banner { /* 宽度自动填充整个浏览器

3.3K50

前端成神之路-CSS高级技巧

,而是简单裁切 text-overflow:ellipsis ; 当对象内文本溢出时显示省略标记(...) 注意: 一定要首先强制一行内显示,再次和overflow属性 搭配使用 ?...CSS精灵技术(sprite) 重点 5.1 为什么需要精灵技术 ? 图所示为网页请求原理图,当用户访问一个网站时,需要向服务器发送请求,网页上每张图像都要经过一次请求才能展现给用户。...最常见于各种导航滑动门。 http://weixin.qq.com/ 核心技术 核心技术就是利用CSS精灵(主要是背景位置)和 盒子padding撑开宽度, 以便能适应不同字数导航栏。...一般经典布局都是这样导航栏内容 css样式 * { padding:0;...之所以a包含span就是因为 整个导航都是可以点击。 7. 拓展@ 7.1 margin负值之美 1).

6.8K30

一文掌握css常见布局float、position、flex、grid

,但是跟绝对定位区别的一点是,该元素边产生了浮动流,以至于其相邻元素会向右或者想左靠近该元素,不是跟绝对定位一样,相邻元素会忽略该元素所在位置,直接铺满整个空间。...脱离文档流设置了float属性元素跟绝对定位一样,脱离了文档流,对于一个父元素中只有一个或多个有浮动属性元素,父元素会产生塌陷效果,这时一定要留意不要有让父元素高度自适应想法:浮动实现横向导航目前浮动常见用法便是配个...fixedfixed属性比较好理解,可以概括为如下三句话:针对于body来做定位;不随着窗口滚动发生位置变量,常用来做广告赖皮显示以及一些需要固定在某个位置元素;可以作为定位元素,它absolute...:容器属性 flex-wrap这个属性比较好理解,因为flex容器里面的所有元素都是inline-block类型,所以一定会有当所有子元素长度大于父元素时是否需要换行需求,该属性有以下几个值:nowrap...item宽度项目属性 flex-grow定义了剩余空间如何利用,常用来当固定宽度几个元素没有占满整个容器,然后剩余宽度都由一个元素占满。

11210

flex大法:一网打尽所有常见布局

经典导航栏 如图所示是一个经典网站导航布局,logo和导航在左,用户信息在右,不用flex可能会使用浮动,上图使用浮动还好,但是如果右边是两个块,那么右边浮动元素显示顺序和书写顺序要不一致才行...,是不是这样margin:0 auto,margin-left和margin-right默认值是0,如果设置为auto,将会根据剩余可用空间来计算,这也是为什么能水平居中,因为左右都想尽量多,那么就只能平分了...,那我宽度就少一点好了,比如设为20%,然后允许扩展,即flex-grow:1,那样不就可以把减去子元素宽度及外边距还剩下空间再还给子元素了吗,试试看: 可以看到前面一切正常,但是最后一行因为只有一个元素...,以【单列布局】为基础,给content添加三个子元素,两侧定宽,并且不允许收缩,中间允许扩展即可: 垂直居中 不知道各位最开始用flex是为什么,反正笔者就是冲着垂直居中去,用它实在是太简单了,之前还考虑是不是定高呀...display:flex即可,因为flex容器有个属性align-items,用来设置flex子元素在交叉轴上如何对齐,默认值为stretch,即如果flex子元素未设置高度,那么将占满整个容器高度,

84310

flexbox基本原理

如下图所示,其中只有第一个孩子声明了 `flex:1` ,后面的都没有申明宽度,那么在flexbox容器中,后面的7个孩子都是由他们中文字撑开宽度,剩余宽度全部分配给第一个孩子。 ?...如果只有一行的话,这个属性是不生效,所以一定要配合 `flex-wrap: wrap` 来使用。 ? items order 很简单,排列顺序,没什么好讲。...flex-shrink 如果孩子宽度超过了容器宽度(主轴),那么这个属性定义了如何把超过那部分平分到每个孩子身上,然他们按比例来缩小一定宽度从而可以在容器中装得下。...强烈建议用这个属性,不是分别设定三个属性,因为这个属性可以“聪明地”设定三个属性来达到你要效果。 你可以认为 flex 属性就是定义了每个孩子分隔父容器宽度比例。...而且为什么强烈推荐用flex,不是分别设定三个属性,是因为 flex 属性会自动计算 flex-basis 属性值。

1.1K70
领券