CSS 过渡自动高度不起作用[重复]

2023-12-04

我有一个网站,我决定用纯 CSS 片段替换基于 jquery 的切换框。当我使用固定高度值进行过渡(CSS 的最后几行)时,效果很好,但是使用auto值,缺少动画,只有高度变化才有效果!

有没有办法将其与自动值一起使用?我想使用可变文本而不是脚本。

.ac-container{
  width: 400px;
  margin: 10px auto 30px auto;
  text-align: left;
}
.ac-container label{
  font-family: 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
  padding: 5px 20px;
  position: relative;
  z-index: 20;
  display: block;
  height: 30px;
  cursor: pointer;
  color: #777;
  text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
  line-height: 33px;
  font-size: 19px;
  background: #ffffff;
  background: -moz-linear-gradient(top, #ffffff 1%, #eaeaea 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,#ffffff), color-stop(100%,#eaeaea));
  background: -webkit-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
  background: -o-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
  background: -ms-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
  background: linear-gradient(top, #ffffff 1%,#eaeaea 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eaeaea',GradientType=0 );
  box-shadow: 
    0px 0px 0px 1px rgba(155,155,155,0.3), 
    1px 0px 0px 0px rgba(255,255,255,0.9) inset, 
    0px 2px 2px rgba(0,0,0,0.1);
}
.ac-container label:hover{
  background: #fff;
}
.ac-container input:checked + label,
.ac-container input:checked + label:hover{
  background: #c6e1ec;
  color: #3d7489;
  text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
  box-shadow: 
    0px 0px 0px 1px rgba(155,155,155,0.3), 
    0px 2px 2px rgba(0,0,0,0.1);
}

.ac-container input{
  display: none;
}
.ac-container section{
  background: rgba(255, 255, 255, 0.5);
  margin-top: -1px;
  overflow: hidden;
  height: 0px;
  position: relative;
  z-index: 10;
  -webkit-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
  -moz-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
  -o-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
  -ms-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
  transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
}
.ac-container section p{
  font-style: italic;
  color: #777;
  line-height: 23px;
  font-size: 14px;
  padding: 20px;
  text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
}
.ac-container input:checked ~ section{
  -webkit-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
  -moz-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
  -o-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
  -ms-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
  transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
  box-shadow: 0px 0px 0px 1px rgba(155,155,155,0.3);
}
.ac-container input:checked ~ section.ac-small{
  height: 120px; /*auto*/
}
<div class="ac-container">
  <div>

    <input id="ac-1" name="accordion-1" type="checkbox" />
    <section class="ac-small">
      <p>Some content... </p>
    </section>
    <label for="ac-1">About us</label>

  </div>	

  <div>	
    <input id="ac-2" name="accordion-2" type="checkbox" />
    <section class="ac-small">
      <p>Some content... </p>
    </section>
    <label for="ac-2">About us</label>
  </div>
</div>

如果您只想使用 CSS,一种解决方案是转换max-height代替height并将其设置为比以往任何时候都更大的值......

这是一个DEMO

您需要稍微调整一下转换的速度,但至少这个示例让您了解如何完成它。不要忘记在转换过程中也更改属性。从transition: height 0.5s; to transition: max-height 0.5s;.

.ac-container{
    width: 400px;
    margin: 10px auto 30px auto;
    text-align: left;
}
.ac-container label{
    font-family: 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
    padding: 5px 20px;
    position: relative;
    z-index: 20;
    display: block;
    height: 30px;
    cursor: pointer;
    color: #777;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
    line-height: 33px;
    font-size: 19px;
    background: #ffffff;
    background: -moz-linear-gradient(top, #ffffff 1%, #eaeaea 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,#ffffff), color-stop(100%,#eaeaea));
    background: -webkit-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
    background: -o-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
    background: -ms-linear-gradient(top, #ffffff 1%,#eaeaea 100%);
    background: linear-gradient(top, #ffffff 1%,#eaeaea 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eaeaea',GradientType=0 );
    box-shadow: 
        0px 0px 0px 1px rgba(155,155,155,0.3), 
        1px 0px 0px 0px rgba(255,255,255,0.9) inset, 
        0px 2px 2px rgba(0,0,0,0.1);
}
.ac-container label:hover{
    background: #fff;
}
.ac-container input:checked + label,
.ac-container input:checked + label:hover{
    background: #c6e1ec;
    color: #3d7489;
    text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
    box-shadow: 
        0px 0px 0px 1px rgba(155,155,155,0.3), 
        0px 2px 2px rgba(0,0,0,0.1);
}

.ac-container input{
    display: none;
}
.ac-container section{
    background: rgba(255, 255, 255, 0.5);
    margin-top: -1px;
    overflow: hidden;
    max-height: 0px;
    position: relative;
    z-index: 10;
    -webkit-transition: max-height 0.3s ease-in-out, box-shadow 0.6s linear;
    -moz-transition: max-height 0.3s ease-in-out, box-shadow 0.6s linear;
    -o-transition: max-height 0.3s ease-in-out, box-shadow 0.6s linear;
    -ms-transition: max-height 0.3s ease-in-out, box-shadow 0.6s linear;
    transition: max-height 0.3s ease-in-out, box-shadow 0.6s linear;
}
.ac-container section p{
    font-style: italic;
    color: #777;
    line-height: 23px;
    font-size: 14px;
    padding: 20px;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
}
.ac-container input:checked ~ section{
    -webkit-transition: max-height 0.5s ease-in-out, box-shadow 0.1s linear;
    -moz-transition: max-height 0.5s ease-in-out, box-shadow 0.1s linear;
    -o-transition: max-height 0.5s ease-in-out, box-shadow 0.1s linear;
    -ms-transition: max-height 0.5s ease-in-out, box-shadow 0.1s linear;
    transition: max-height 0.5s ease-in-out, box-shadow 0.1s linear;
    box-shadow: 0px 0px 0px 1px rgba(155,155,155,0.3);
}
.ac-container input:checked ~ section.ac-small{
    max-height: 500px; /*auto*/
}
<div class="ac-container">
    <div>
        
        <input id="ac-1" name="accordion-1" type="checkbox" />
        <section class="ac-small">
            <p>Some content...Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content... Some content...  </p>
        </section>
        <label for="ac-1">About us</label>
        
    </div>    

<div>    
        <input id="ac-2" name="accordion-2" type="checkbox" />
        <section class="ac-small">
            <p>Some content... </p>
        </section>
        <label for="ac-2">About us</label>
</div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 过渡自动高度不起作用[重复] 的相关文章

  • 外部 css 文件在 Flask 框架中不起作用

    我正在尝试在我的 html 文件中使用外部 css 文件 起初我使用 bootstrap 框架 效果很好 然而 当我尝试通过添加自定义的css文件来自定义网页时 它根本不起作用 这是我的代码
  • 如何计算单击的甜甜圈元素的中点与负 y 轴之间的角度

    Consider the following codesample donut chart using jquery flot http jsfiddle net c5zsg6y3 26 now as i have added the im
  • 在 Chrome 中为

    我已经看到这个问题多次出现 但没有任何明确的解决方案 我正在加载一个简单的视频
  • 网格布局:创建 CSS,以便元素在调整相邻元素大小时保持位置

    我想在网格布局中构建一个简单的图像库 并且我正在使用类似的东西悬停时缩放 http www javascript fx com navigation imagezoom general help help html缩放悬停图像 但我宁愿使用
  • 在 Chrome 中隐藏 HTML 时间输入字段上的图标

    在 Chrome 中 当您type time 属性到输入框 您会在输入旁边看到一个小图标时钟图标 有没有办法去掉这个小时钟图标 基于这个问题的答案 将日期输入三角形更改为日历图标 https stackoverflow com questi
  • 水平和垂直居中 div 位于页面中间,页眉和页脚粘在页面顶部和底部

    我正在尝试制作一个具有固定高度页眉和页脚的页面 页眉位于屏幕顶部 100 宽度 页脚位于底部 100 宽度 我想将一个具有可变高度内容的 div 居中放置在页眉和页脚之间的空间中 在下面的 jsfiddle 中 如果内容比空格短 它会起作用
  • HTML 表格 - 固定列宽和多个可变列宽

    我必须建立一个有 5 列的表 表格宽度是可变的 内容宽度的 50 有些列包含固定大小的按钮 因此这些列应该有一个固定大小 例如 100px 有些列中有文本 所以我希望这些列具有可变的列宽 例如 Column1 tablewidth sum
  • rvest 和 NHL 统计数据的 CSS 选择器问题

    我想从 hockey reference com 中抓取数据 特别是从以下链接中抓取数据 https www hockey reference com leagues NHL 1991 html https www hockey refer
  • 使用 CSS Grid,从任何地方滚动 div(不使用 jQuery 插件)

    div 怎样才能 scroll content https jsfiddle net blehmanade x1k3rhj7 33 可以从页面上的任何位置滚动吗 现在 scroll content仅当鼠标位于其上方时才可滚动 但是 当鼠标位
  • 如何在非 CSS3 浏览器上制作圆角?

    我知道在这种情况下我必须使用图像 每个角一个 例如 如果我需要给定元素周围有一个 4px 的纯蓝色边框 边框半径为 8px 我相应地设计了四幅图像 左上角 png 右上角 png 左下角 png 右下角 png 如果可能的话 我应该如何实现
  • 伪元素和 SELECT 标签

    是否select标签允许使用 after选择器是为了在之后创建一个伪元素吗 我在 Mac 上尝试过 Chrome Safari 和 Firefox 但似乎不起作用 这是我使用过的折衷方案 http jsfiddle net pht9d295
  • jQuery 位置 DIV 固定在滚动顶部

    我有一个相当长的页面 在布局的菜单中 有一个弹出菜单 我希望菜单的弹出部分显示在页面顶部 即使用户已将菜单栏滚动到视图之外 这是菜单的 HTML div div Compare up to 3 cards side by side Clic
  • 有没有办法改变输入类型=“日期”格式?

    默认情况下 输入type date 显示日期为YYYY MM DD 问题是 是否可以将其格式强制为 DD MM YYYY 无法更改格式 我们必须区分有线格式和浏览器的表示格式 接线格式 The HTML5日期输入规范 https www w
  • 我正在尝试向我的 vue.js 项目添加背景图像

    我想添加覆盖整个页面的背景图像 然而现在看起来是这样的 我希望它跨越整个网页 在 vue js 中这将如何完成 我还想要一个动画工具栏 以便当页面不滚动时工具栏是透明的并呈现背景图像的外观 当它滚动时 工具栏将具有当前的蓝色 这是我的小提琴
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • 如何适应特定子元素的宽度?

    problem 我正在尝试创建一个技能表 我无法问下一个问题为什么 所以我创建了一个新帐户并询问 当前状态 我想将元素的宽度与 meter 也就是说 如何设定区块的标准 meter 子元素 在上面的 gif 中 img meter 我想要保
  • IE 中的 HR 标签 - 删除边框

    在除 IE7 及更低版本之外的其他浏览器中 hr 在 hr 标签周围显示边框 但我不希望它出现 我已经尝试过这个解决方案 但它周围似乎仍然有边框 它看起来像这样 我该如何摆脱它 See http webdesign about com od
  • @font-face 和 font-variant 是个坏主意吗?

    如果我使用 font face字体和font variant small caps对于相同的选择器 字体将回退到 Safari 中的下一个系统默认字体 我该如何解决这个问题 我一开始在创建一个示例来复制您的问题时遇到了一些麻烦 这让我意识到
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此

随机推荐

  • 为什么 ng-content 选择器在 *ngFor 中不起作用

    这是 stackblitz 代码 如你看到的 div div ul number ul div div
  • 已分配值,从未使用过,但没有编译器消息

    整个程序采用 net Web 应用程序的 Web 形式 namespace WebApplication1 public partial class WebForm1 System Web UI Page protected void Pa
  • 从数据库中获取高于平均水平的学生

    我创建了一个视图 其中包含 student full name subject code result Jennifer Higgins CS1234 81 Jennifer Higgins CS1235 90 Kal Penn CS123
  • 致命错误:调用未定义的方法 mysqli::bind_param()

    我在这里挑不出毛病 你帮忙吗 这是我的错误 致命错误 调用未定义的方法 mysqli bind param 我不知道出了什么问题
  • R highcharts 多堆叠条形图

    我想绘制多个堆积条形图 但我不知道如何组合 r 代码 Closing Date Non Current Assets Current Assets Non Current Liabilities 2 2013 12 13637344 130
  • UITableView 从右到左对齐

    我正在为 iphone 3 0 开发一个阿拉伯语应用程序 我想知道是否有一种方法可以将 UITableViewCell 转换为从右到左 我希望一切都向相反的方向发展 有什么想法吗 创建您自己的 UITableViewCell 子类并不难 并
  • ConstraintLayout 对多个水平链的处理方式不同

    我正在尝试设置我认为应该是一个简单的布局ConstraintLayout我有一系列文本条目 其标签的大小可以根据语言的不同而变化 标签右侧有一个屏障 因此即使标签长度发生变化 文本条目也能保持对齐 我希望文本条目具有标称大小 在本示例中 顶
  • 如何在 Python Turtle 中导入图像?

    我想要的是获取一个图像来替换默认的海龟 就像这里所做的那样 http blog trinket io using images in turtle programs 这是我的代码 但我不知道为什么它不起作用 import turtle im
  • 单击通知不会启动活动

    我正在从服务创建通知 显示了通知 但是当我单击它时 没有任何反应 它应该打开一个活动 My code NotificationManager notificationManager NotificationManager getSystem
  • 使用 CORDA 流创建原子事务的最佳方法

    我有一个用例 我需要将数据发送给多个交易对手 但各方需要彼此保持匿名 从交易对手处收回背书后 我需要提交整个交易 整个事务的原子性需要保持 使用 Flows 实现这一目标的最佳方法是什么 为此 您需要使用机密身份 机密身份在状态中由Anon
  • Golang 中的货币格式使用来自 golang.org/x/text/currency 的currency.Symbol

    您好 我正在开发一个以货币格式格式化值的函数 我使用 golang org x text currency 来完成这项工作 但我得到的输出是逗号位置的点 没有千位分隔符 func produto Produto FormataPreco v
  • OSS 许可证插件在启动 OssLicensesMenuActivity 时崩溃

    每个人 我已经使用本教程包含了 Android OSS适用于 Android OSS 许可证的 Google API 进入我的项目 目标sdk版本是27 但我在开始时遇到一个问题Oss许可证菜单活动 我这样做如下 OssLicensesMe
  • 及时只显示一种颜色

    我正在开发油漆应用程序 问题是当我选择颜色和油漆 然后选择不同的颜色时 整个油漆颜色会更改为新颜色 任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题吗 以及如何添加橡皮擦 imageview DrawView在这里 public
  • Switch 语句输出字符串错误

    我遇到了这个基本问题 其中 switch case 与字符串一起使用 Break 语句不在 case 之间使用 但为什么即使它与 case 字符串不匹配 它也会适用于所有 case 所以我很想知道为什么输出是3而不是1 public sta
  • OpenCV 中的形态重建

    在 OpenCV 中处理带有文本的图像时 我的打开操作不会产生正确的输出数据 该问题与本文中描述的问题非常相似 http www cpe eng cmu ac th wp content uploads CPE752 06part2 pdf
  • roadoi 中的 UseMethod("http_error") 错误

    我正在尝试roadoi从 R 访问 Unpaywall 但无论我尝试查询什么 我都会得到以下响应 UseMethod http error 中的错误 没有适用的方法 http error 应用于类 c simpleError error 健
  • C++ 函数地址在附加探查器库中的显示与主题代码库中的显示不同

    我用 C 编写了一个仪器 通过挂钩进入和退出调用来记录进入和退出函数 它按照预期与遗留代码库一起工作 然而 在挂钩我从 git 下载的项目时 我保存在主题代码的 extern 变量中的函数地址 它们在探查器库中的结果是不同的 这扰乱了挂钩函
  • 选择特定组件时,Inno Setup 禁用组件选择

    我希望能够根据所选的特定组件禁用对组件的选择 我无法通过组件嵌套来做到这一点 因为组件需要自行选择 但如果选择了另一个特定组件则不能选择 目前我使用NextButtonClick显示消息的事件 if IsComponentSelected
  • Html 复选框:更改颜色

    在开发 NET 应用程序期间 我遇到了一个问题 我想做的是改变一个简单的 Html 复选框的背景颜色 所以我使用了以下 HTML 代码
  • CSS 过渡自动高度不起作用[重复]

    这个问题在这里已经有答案了 我有一个网站 我决定用纯 CSS 片段替换基于 jquery 的切换框 当我使用固定高度值进行过渡 CSS 的最后几行 时 效果很好 但是使用auto值 缺少动画 只有高度变化才有效果 有没有办法将其与自动值一起