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

CSS实现最简洁的单选折叠菜单

不到万不得已的时候千万别引入前端UI框架,因为HTML5和CSS3已经能实现绝大多数的功能,比如上期的《CSS实现最简洁的开关》只用了不到50行css就实现了带动画的material design风格的开关...今天教大家用纯css实现一个单选的折叠菜单,不需要JavaScript就能用。折叠菜单和标签页差不多,逻辑上都是一种单选面板,只不过折叠菜单一般是垂直堆叠的,标签页是横着排列。...首先这些单选按钮组的父元素用,因为可以监听按钮组的变化,同时还能通过name属性直接得到RadioNodeList列表和变化值,非常方便,不用设置其他的css选择器了。...属性要一致,然后通过form[name]得到单选组,form[name].value就是当前选中的按钮的value,也就是折叠按钮的标题,每个后面跟着一个就是菜单展开的内容。...,无法反选,菜单展开后想要折叠只能点别的菜单项,当然这也没什么,如果非要实现反选菜单的功能,需要记录上次展开的菜单项,每次发生点击事件时,判断是否重复点击: // for every

5.3K20

1KB CSS Grid:轻量级的 CSS 网格系统

CSS 框架逐渐变得流行,其中的一些,如 BluePrints, YUI, YAML 等想去实现所有的东西,如网格系统,样式重置,基本板式,表单样式,其他的仅仅关注网格,但是还是显得臃肿,最后加上复杂性...,这样只会使学习曲线变得陡峭,和增加开发时间,以及无穷的调试。...所以如果你仅仅需要一个轻量级的 CSS 网格系统,来构建你网站的主框架,那么你可以尝试下 1Kb CSS Grid。...1KB CSS Grid 网站上提供了一个生成器用来定制 CSS 网格,并且可以直接下载定制好的 CSS 网格。...另外 Usability Post 这个博客上面还有3篇关于 1KB CSS 网格非常详细介绍: Introduction Using The Grid For Templating The Details

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

    CSS进阶11-表格table

    因此每个单元格是一个矩形盒,具有一个或多个网格单元的宽度和高度。此矩形的top row位于单元格的父级所指定的行中。...5.2.1 固定表格布局fixed table layout 使用这种(快速)算法,表的水平布局不依赖于单元格内容; 它仅取决于表格的宽度,列的宽度以及borders或者单元格间距cell spacing...UA必须通过检查表格第一行中的第一个和最后一个单元格来计算表格的初始左边界和右边界宽度。表格的左边框宽度是第一个单元格的折叠左边框的一半,并且该表格的右边框宽度是最后一个单元格的折叠右边框的一半。...如果后面的行具有较大的折叠左右边界,则任何多余部分溢出到表格的margin area。 表格的顶部边框宽度是通过检查所有用表格顶部边框折叠顶部边框的单元格来计算的。...表格的顶部边框宽度等于最大折叠顶部边框的一半。通过检查底部边界与表底部折叠的所有单元格计算底部边框宽度。底部边框宽度等于最大折叠底部边框的一半。

    6.6K30

    【说站】css中grid网格布局的介绍

    css中grid网格布局的介绍 1、grid布局又称为网格布局,可以实现二维布局方式。 2、这是使用CSS控制的,不是使用HTML控制的,同时还可以依赖于媒体查询根据不同的上下文得新定义布局。...网格线(Grid Lines) 网格线组成了网格,他是网格的水平和垂直的分界线。一个网格线存在行或列的两侧。我们可以引用它的数目或者定义的网格线名称。...网格轨道(Grid Track) 网格轨道是就是相邻两条网格线之间的空间,就好比表格中行或列。所在在网格中其分为grid column和grid row。...每个网格轨道可以设置一个大小,用来控制宽度或高度。 网格单元格(Grid Cell) 网格单元格是指四条网格线之间的空间。所以它是最小的单位,就像表格中的单元格。...网格区域(Grid Area) 网格区域是由任意四条网格线组成的空间,所以他可能包含一个或多个单元格。相当于表格中的合并单元格之后的区域。 以上就是css中grid网格布局的介绍,希望对大家有所帮助。

    1.7K20

    深入学习下 CSS 间距相关的知识

    边距折叠 简而言之,当两个垂直元素有一个边距,并且其中一个的边距大于另一个时,就会发生边距折叠。 在这种情况下,将使用较大的边距,而忽略另一个边距。...因此,导航项的宽度取决于它们的内容。 以下是解决方案: 设置导航项的最小宽度 增加水平填充 在分隔符的左侧添加额外的边距 最简单更好的解决方案是第三种,即添加一个margin-left。...: 4px; padding-right: 4px; } 网格系统中的间距 - CSS 网格 现在,到了激动人心的部分!...使用 CSS 网格,你可以使用 grid-gap 轻松添加间距。 此外,你不需要关心网格项目的宽度或底部边距。 CSS Grid 为你做一切!...关于解决方案 #2,它没有 CSS 特异性问题。 但是,它仅适用于一个列堆栈。 更好的解决方案是通过向父元素添加负边距来取消不需要的间距。

    13.5K40

    css左侧固定宽度,右侧自适应的几种实现方法

    下面列举几个常见的方法: 1.固定宽度区浮动,自适应区不设宽度而设置 margin 我们拿右边定宽左边自适应来做示范,CSS代码如下: #wrap { overflow...而宽度100%是相对于他的父标签来的,如果我们改变了他父标签的宽度,那content的宽度也就会变——比如我们把浏览器窗口缩小,那wrap的宽度就会变小,而content的宽度也就变小——但,他的实际宽度...5.使用css3的calc计算元素宽度+浮动 calc()从字面我们可以把他理解为一个函数function。...其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。...前四种方法转载自老生长谈:css实现右侧固定宽度,左侧宽度自适应。这里主要是将各种方法进行汇总。我目前了解到的方法主要是这些,如果大家还有其他方法的请留言分享

    2.7K20

    巧用CSS3的calc()宽度计算做响应模式布局

    其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。...比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。...不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。 calc()能做什么?...calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em)”,这样一来你就不用考虑元素div的宽度值到底是多少...我们来个例子,我们做一个三列并排的模块,宽度按百分比、有padding值、有border值、还有margin-right,而且这三个值是px, li{ float:left; width:33.3333%

    1.7K10

    仅使用HTML和CSS的亮暗模式按钮切换

    建立仅html和css的亮暗模式切换的快速指南。...这是我的解决方案,针对本教程进行了简化: 怎么运行的: 大多数dark-mode切换按钮的工作方式是更改标签上的属性,然后在CSS中定位该属性。...首先让我们添加CSS variables。 CSS variables使我们可以定义根据复选框而变化的颜色。...我们将仅使用两种颜色,一种用于背景,另一种用于文本: :root { --bg:#F4F0EB; --text:#141414; } #dark-mode:checked ~ .color-scheme-wrapper...HTML/CSS/JS的动态元素周期表 基于HTML/CSS/JS的爱吹风的狮子小游戏 100个最常问的JavaScript面试问答 java五子棋小游戏含免费源码 一个炫光效果的酷炫登录表单 感谢您阅读至最后

    4K20

    创建水平滚动的正确方式【CSS 网格布局】

    本文,我们探讨 CSS 网格的弹性布局,它是如何帮助我们实现水平滚动的,同时处理它带来的缺陷。...如下: 需要注意的是,容器两端的距离和周围内容的距离是匹配的(也就是整体布局要和谐)。 整体布局 现在,我们已经基本明白水平滚动容器的特性了。接下来,我们考虑使用 CSS Grid 网格布局来编码。...使用 CSS Grid 网格布局方便我们控制元素之间的距离,无需进一步计算。...带 .full 类名的子元素,将会占据全部视窗的宽度且没有内边距。 滚动容器 我们使用六个卡片来创建水平滚动容器,一次显示两张。...最后,我们需要确保的是 .hs:after ,它继承了其他卡片的大小,其占用的空间不超过 10px。所以我们需要通过固定的宽度来限定。

    2.6K50

    CSS(三)

    CSS(三) 發佈於 2018-06-28 本篇将讲解盒模型以及外边距折叠的相关知识。 “CSS 盒模型”是一组规则,用于定义如何呈现 Internet 上的每个网页。...Block boxes 和 Inline boxes 的行为 Block boxes 总是在前一个 Block 元素之后 Block boxes 的宽度基于其父容器的宽度 Block boxes 的高度基于其所容纳的内容...Inline boxes 不会影响垂直间距,它们不是用于确定布局,只是用于构建块内的样式 Inline boxes 的宽度基于其所容纳的内容,而与父容器的宽度无关 改变 Box 的行为 我们可以使用...但是,它不会影响周围盒子的垂直布局。 垂直边距折叠 盒子模型的另一个怪癖是”垂直边距折叠”。当你有两个垂直边距彼此相邻的盒子时,它们会折叠。不是将边距加到一起,而是仅显示最大的边距。...Content Boxes and Border Boxes Content Boxes 我们定义的 width 属性仅表示内容的宽度。

    1.9K20

    CSS 面试要点:盒模型

    IE 模型元素宽度 width = content + padding + border: 而标准模型的元素宽度 width = content: 二者的高度计算都是相同的。...# CSS 如何设置盒模型宽高 在 CSS3 中,可以通过属性 box-sizing: content-box | border-box 来设置盒模型为 标准模型(content-box) 和 IE 模型...dom.getBoundClientRect().width/height 取得最终渲染后的宽高,还可以取得相对于视窗的上下左右的距离 # 边距重叠 两个垂直外边距相遇时,会发生折叠,合并后的外边距高度等于两折叠外边距中最高的那个...只有普通文档流中的垂直外边距才会发生折叠,行内元素、浮动元素或绝对定位之间的外边距不会发生折叠。...网格元素(display 值为 grid 或 inline-grid 元素的直接子元素),如果它们本身既不是 flex、grid 也不是 table 容器

    57960
    领券