当容器的body元素被设置为width: 50%时,意味着body元素的宽度将会是其父容器宽度的50%。
; top: 300px; left: 50px; } div.fixed_2 { position: fixed; border: 3px solid #44f895; width: 200px...wrap表示自动换行,当项目在第一行排列不完时,会自动切换到下一行排列。 wrap-reverse 也是自动换行,但不同的是,它是从底下开始排列的(之前我们都是从上面开始排的)。...justify-content属性定义了项目在主轴上的对齐方式(我们想要使项目在容器中居中时,经常用得到)。...3.2.3 项目属性# 前面我们介绍的是写在容器上的属性,写完之后会作用于容器里面的项目排列布局样式。而项目属性是写在项目上的。...: 50px; height: 50px; line-height: 50px; text-align: center; font-size: 30px; } </head
-- sticky定位 --> 这个是sticky定位 1.2 float定位...wrap表示自动换行,当项目在第一行排列不完时,会自动切换到下一行排列。 wrap-reverse 也是自动换行,但不同的是,它是从底下开始排列的(之前我们都是从上面开始排的)。...justify-content属性定义了项目在主轴上的对齐方式(我们想要使项目在容器中居中时,经常用得到)。...3.2.3 项目属性 前面我们介绍的是写在容器上的属性,写完之后会作用于容器里面的项目排列布局样式。而项目属性是写在项目上的。...: 50px; height: 50px; line-height: 50px; text-align: center; font-size: 30px;
不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性,无需用display转换。...父容器恢复高度 当产生浮动后,我们的浮动元素盒子默认高度是0,所以如果一个盒子里装的全是浮动盒子,该盒子高度就为0,就会坍塌掉,同时还会影响到后面标准流的布局。.../* 容器高度 */ background-color: #f0f0f0; } .element { position: absolute; top: 50%; /* 元素顶部定位在容器中间...*/ right: 0; /* 元素右侧与容器右侧对齐 */ margin-top: -50px; /* 元素向上移动自身高度的一半 */ width: 100px; /* 元素宽度...浮动元素不会压住标准流文字 浮动元素会脱标,当它压住标准流时,文字不会被压住,会环绕在周围显示。 而定位元素脱标压住标准流时,文字会被压住。
> 分析 这次,我同样是定义了一个类选择器 light,为了方便以后使用...linear-gradient(to right,rgba(255,255,255,.2),rgba(255,255,255,.8),rgba(255,255,255,.2)); 这行代码就是一个线性渐变的背景,我们看看是什么效果...具体px数值 %:取决于当前元素宽或高的占比,来决定颜色位置 可以省略不写 例: background:linear-gradient(to bottom,red 0%,green 50%...} 100%{ 动画运行结束时 显示的样式 } } animation 用来调用动画,上面的意思就是调用动画 light ,0.7s完成 匀速播放 动画按正常播放...这是第二个特效,相比第一个是有一点点的麻烦,但效果确实很有趣,下次我们再来实现一个更加有趣的特效。
当出现滚动条时,对象不会随着滚动。 ---- center 与absolute一致,但偏移定位是以定位祖先元素的中心点为参考。盒子在其包含容器垂直水平居中。...(CSS3) sticky 对象在常态时遵循常规流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。...; flex-shrink为n的项目,空间不足时缩小的比例是flex-shrink为1的n倍。...height: 200px; background: lightblue; } .center { /* 这里写1的意思是把剩余空间全部占满...; width: 50%; } <div class
’ + ‘margin-right’ = 块的宽度 当一个元素的宽度值为auto时,它包含margin、padding和border,不会变得比它的父元素大。...当一个子项目有一个margin是auto 时,它将被推到远的另一边。例如,如果一个flex项目的左边是margin-left: auto,那么它将被推到最右边。...这是什么意思?...卡片组件 你可能有一个card组件,其左上角有一个操作,它可能仅用于装饰,也可能是一个有用的操作。不管是什么,你都应该考虑到它是双向的。 ?...对于这种情况,我们可以使用以下代码: .modal-body { overflow-y: auto; } 这样,只有当内容高度足够大时,它才会显示滚动条。
一、概念理解 浮动:顾名思义先浮后动,浮动的对象会先漂浮起来,离开自己原来的位置(也就是所谓的脱离文档流),后动的意思是,它的后面的元素会向它原来的位置动起来。...二、注意事项 1.当元素有浮动属性时,会对其父元素或后面的元素产生影响,会出现一个布局错乱的现象。...(我们可以通过清除浮动的方式进行解决这个问题) 2.当父元素没有指定高度并且子元素有浮动时,这个父元素的高度不会自动增加。 ...:Blue;height:150px;width:150px;border-radius:50%;margin-top:50px;margin-left:20px;} 8 9 10 11 12 13 </body
刚刚又把携程的案例做了一遍,发现还是有问题的,虽然说子盒子为弹性容器的时候,虽然是没有行内元素和块级元素的区别了,但是当里面没有内容的时候,设置了大小也还是不生效的.案例自己做的时候发现也没那么麻烦啦...> /* 这句话的意思是:在我的屏幕吧上,且最大的宽度为800像素,就设置成我们想要的样式 */ @media screen and (max-width:800px)...,当屏幕宽度大于800时,body的颜色会怎么变化: 03 媒体查询+rem实现元素动态大小变化 rem单位是跟着html来走的,有了rem页面元素可以设置不同大小尺寸,媒体查询可以根据不同设备宽度来修改样式...,一行只显示一个盒子,当尺寸大时,一行显示两个....其实写了两个CSS样式 当屏幕尺寸最小为320px时: .box div { width: 100%; height: 100px; background-color: pink
在本文中,我们将探索这些新网格,以便您在选择其中一个时做出明智的决定。 关于容器视图的一句话 在我们开始探索 Grid 视图之前,让我先谈谈容器视图。...当没有布局容器存在时,SwiftUI 会隐式使用 VStack。...当您更改网格时,该应用程序还将向您显示生成您创建的网格的代码。 整个应用程序位于一个 swift 文件中,因此只需几秒钟即可完成设置。...当您阅读以下部分时,最好运行 Grid Trainer 应用程序并测试您对网格的理解。试着看看你是否可以预测当你改变参数时网格会做什么。每次你得到你所期望的不同结果时,你都会学到一些关于网格的新东西。...: 80.0, height: 80.0) } } 对齐路线 网格对齐 当单元格的视图小于可用空间时,对齐方式将取决于几个参数。
首先要先了解各个属性具体的作用是什么,就拿从白到黑举个例子吧,首先写一个 @keyframes 的动画过程。...leftright 的动画,将容器从左到右移动了 100px。...但是这个动画结束的很突兀,容器突然回到原地,这是为什么呢?因为我们没有保留最后一帧,这需要一个属性,最上面我们讲过了。...所以我们可以添加一个新的时间节点,50%,我们让当时间过了一半的时候,方块运行到 120px 的位置,然后再折回来。 下面是完整的代码,可以复制到本地,自己运行一下试试看。 <!...如何用好动画特效,是一门学问,将 css 玩出花样来,可不是那么简单的。
BFC 虽然可能你没听过BFC是什么,但是你一定用过,其是一种在CSS中存在的技术,你可能只是一直不知道有这样一个专业名词,本文就来介绍一下到底什么是BFC 一、什么是BFC 首先引用一下WC3对BFC...的专业解释 「BFC」(Block Formatting Context):翻译成中文叫做块级格式化上下文,它决定了元素如何对其内容进行定位,以及与其它元素的关系和相互作用,当涉及到可视化布局时,其提供了一个环境...,元素在这个环境中按照一定的规则进行布局排列 换句话说,BFC就是为元素提供一个独立的容器,在该容器里按照一定的规则进行布局排列,该容器内的元素不会影响外部的元素,同理,外部的元素也不会影响内部的元素...实际效果就是,我们给子元素添加了 margin-top,但却是父元素整体与上一个元素拉开了距离,这就是我们常见的 「margin-top塌陷」 的问题 很明显,对子元素进行布局时影响到了其它元素的布局,...根据代码,按道理来说子元素1与子元素2之间应该相隔 20 + 50 = 70px,但实际却只有 50px ;同理,子元素2与子元素3之间应该相隔 70 + 50 = 120px,但实际却只有 70px
GeometryReader 是布局容器吗,它的布局逻辑是什么? 是,但是其行为有些与众不同。...GeometryReader { _ in Rectangle().frame(width: 50, height: 50) Text("abc").foregroundStyle(.white...) } 大致等于: ZStack(alignment: .topLeading) { Rectangle().frame(width: 50, height: 50) Text("abc...或许有些读者不太了解其含义,ideal size 是指当父视图给出的建议尺寸为 nil 时(未指定模式),子视图返回的需求尺寸。...在一些复杂的布局场景中,或者在某些设备或系统版本中,布局可能需要经过几轮的协商才能获得最终稳定的结果,尤其是当视图需要依赖 GeometryReader 提供的几何信息来重新确定自己的位置和尺寸时。
(45deg,#e91e63,#e91e63 50%,#ffc107 50%,#ffc107); } body::after{ content:''; position:absolute...#03a9f4,#03a9f4 50%,transparent 50%,transparent); } * *是通配符,选择所有元素的意思 vh 首先说一下——视窗: 视窗即window.innerWidth...vh是视窗单位,1vh = 1%的视窗高度。vw也是同理。 ::before body::before在每个body前插入内容,当然body只有一个。content是文本内容。...; body::after{ content:''; position:absolute; top:-20px; left:0; width:100%;...然后是分针 秒针最长 /* 时针分针秒针的长度不通 */ .hour, .hr { width:160px; height: 160px; } .min, .mn{ width
: 1px solid red; } .box { position: static; width: 50px; height: 50px; background-color: black...left: 20px; top: 20px; width: 50px; height: 50px; background-color: black; } absolute absolute...div> .parent{ position: relative; top: 50px; left: 800px; width: 300px; height: 200px...元素的位置在屏幕滚动时不会改变。其与 absolute 的区别是,fixed 是相对于屏幕 viewport 做偏移的,而 absolute 是相对于最近的一个非 static 祖先元素做偏移的。...div> .parent{ position: relative; top: 50px; left: 800px; width: 300px; height: 200px
---- CSS定位介绍 ---- 布局和定位的区别 布局是屏幕平面上的,定位是垂直于屏幕的。 还得从文档流和盒模型说起。   <!...; } 如果从左边,看div是什么样子的?...} .float{ float: left; background: green; height: 50px; width: 50px; color: red; } .text...; width: 50px; height: 50px; position: relative; } 3.absolute:绝对定位,定位基准是祖先里的非static 使用场景,关闭按钮...每个层叠上下文都完全独立于它的兄弟元素:当处理层叠时只考虑子元素。 每个层叠上下文都是自包含的:当一个元素的内容发生层叠后,该元素将被作为整体在父级层叠上下文中按顺序进行层叠
: 150, height: 50) } } // ZStack struct IconDemo1: View { var body: some View { ZStack...每种容器都有其适合的场景,例如对于如下需求 —— 创建类似视频 app 中的点赞功能的子视图( 在布局时,仅需考虑手势图标的位置和尺寸),overlay 这种需求尺寸仅依赖于主视图的容器便有了用武之地:...当用布局容器创建合成视图时,必须将构成后的合成视图对父容器的布局影响考虑到其中。针对不同的需求,选择恰当的容器。...)) } } frame(width:,height:) 的实现 这一版本的 frame 有如下功能: 当两个维度都设置了具体值时,将使用这两个值作为 _FrameLayout 容器的需求尺寸...当 min 或( 和 ) max 有值时,会按如下规则返回 _FlexFrameLayout 的在该维度上的需求尺寸( 下图来自于 SwiftUI-Lab[6] ) frame-flow-chart
块级元素 让块级元素居中的方法就是设置 margin-left 和 margin-right 为 auto(前提是已经为元素设置了适当的 width 宽度,否则块级元素的宽度会被拉伸为父级容器的宽度)。...我觉得可以将它们分为三种类型 宽高固定元素 设定父级容器为相对定位的容器,设定子元素绝对定位的位置 position: absolute; top: 50%; left: 50%,最后使用负向 margin...20px; } 宽高不固定元素 如果无法获取确定的宽高,同样需要设定父级容器为相对定位的容器,设定子元素绝对定位的位置 position: absolute; top: 50%; left: 50%。...不同的是,接下来需要使用 transform: translate(-50%, -50%); 实现垂直居中: I'm a block-level element...; overflow: auto; } 使用 transform 有一个缺陷,就是当计算结果含有小数时(比如 0.5),会让整个元素看起来是模糊的,一种解决方案就是为父级元素设置 transform-style
.center { margin: auto; width: 50%; border: 3px solid green; padding: 10px; } 注意:如果没有设置宽度属性...当使用 position对齐元素时, 总是定义 margin 和 padding 为 元素. 这是为了避免不同浏览器的视觉差异。...还有IE8和早期版本有一些问题, 当使用 position. 如果容器元素有一个指定的宽度 (例如:) , 并且没有设置!...DOCTYPE 当使用 position时: body { margin: 0; padding: 0; } .container { position: relative;...solid #73AD21; padding: 10px; } 提示: 当将元素使用浮动对齐时,总是为body元素定义边距和填充。
title> CSS html, body { margin:...动画理解 对于白球来说 开始(0%) 是位于translate(0, 0),也就是不移动,待在原来位置; 50% 时位于translate(-50%, -50%),也就是向左移、上移相对于自身宽度(或高度...96px; 50% 时位于translate(-50%, -50%),意思是相对于translate(0, 0)的位置,只需要左移、上移自身的50%,也就是24px; 100%时,又回到原位置 记住translate...(-50%, -50%)执行时,参照的是元素的最开始的位置 步骤8 为span添加动画 顺时针旋转(0-360度) 无限循环 效果图如下(仅该动画生效时) ?...当原after缩放50%时 ?
但不管是Flexbox还是Grid布局中,都存在一定的缺陷,当容器没有足够的空间容纳Flex项目(或Grid项目)时,Flex项目或Grid项目会溢出(或隐藏,如果Flex容器或Grid容器显式设置了overflow...0 400px; } 这个时候,当Flex容器没有足够空间时,Flex项目会按flex-basis: 400px计算其宽度,Flex容器没有足够空间时,Flex就会断行: 反过来,如果Flex项目的值...如果我们把浏览器视窗缩小至760px: 这个时候.element元素的width是50vw。...,那么这个时候clamp()函数返回的值是VAL,即50vw,这个时候.element的width值就是50vw(即VAL的值)。...的宽度不会大于500px(有点类似于元素设置了max-width: 500px) 首选值VAL为50vw,只有当视窗的宽度大于200px且小于1000px时才会有效,即元素.element的宽度为50vw
领取专属 10元无门槛券
手把手带您无忧上云