- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
编辑:由于下面的答案适用于示例,但不适用于我的实际站点,因此我将该站点变成了 JSFiddle。我不知道它们会有什么不同,但一定有一些我忽略的地方。
https://jsfiddle.net/spikespaz/25bnqpoe/
原文:
我无法设置侧边栏的动画以使其关闭,因为 display: table-cell
没有响应小于内容要求的宽度变化,即使溢出和文本换行也是如此。
jQuery 的 *.toggle()
可以正常工作,但我不喜欢它的动画方式。因此,我尝试创建自己的类以在 jQuery 切换时更改侧边栏的宽度,但它实际上从未像普通 block div
那样自行折叠。
我想我必须在父级上使用 display: table
并在子级(内容和侧边栏)上使用 display: table-cell
以使侧边栏具有相同的高度作为内容。
问题当然是宽度。我无法为它制作动画;它甚至不会改变摆在首位。但如果没有它,侧边栏就不会延伸到底部。
我不知道该怎么做,有什么建议吗? (我想尽可能避免额外的 JavaScript。)
这是一个供您 fork 的快速示例:https://jsfiddle.net/spikespaz/fr0gpmwf/
以及用于显示的代码片段:
const close = $("#close");
const sidebar = $("#sidebar");
close.click(() => {
close.toggleClass("closed");
sidebar.toggleClass("closed");
});
h3 {
margin: 0;
}
#header {
display: flex;
align-items: center;
justify-content: space-between;
background: rgb(190, 190, 190);
height: 50px;
}
#close {
float: right;
transition: transform 500ms;
}
#close.closed {
transform: rotate(180deg);
}
#main {
display: table;
width: 90%;
margin: 0 auto;
}
#content {
display: table-cell;
background: rgb(220, 220, 220);
}
#sidebar {
display: table-cell;
width: 100px;
background: rgb(160, 160, 160);
white-space: nowrap;
overflow-x: hidden;
transition: width 500px;
}
#sidebar.closed {
width: 0;
}
#footer {
display: flex;
align-items: center;
background: rgb(190, 190, 190);
height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="header">
<h3>This is a header!</h3>
<button id="close">Close</button>
</div>
<div id="main">
<div id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla massa turpis, fermentum ac cursus sed, fringilla iaculis dui. Nam tempus dolor pellentesque placerat sodales. Praesent a tortor posuere, fringilla neque eget, aliquet nibh. Aliquam eget
odio id nibh blandit faucibus sit amet sed mi. Nullam at lacus pulvinar dolor euismod facilisis. Curabitur cursus velit tellus, ut vestibulum lorem viverra quis. Ut ipsum lacus, laoreet molestie dolor id, efficitur cursus lorem. Aliquam sed euismod
nulla, sit amet facilisis lectus. Quisque vel nibh consectetur, commodo orci ut, mattis lectus. Donec id dolor id metus mattis faucibus. In hac habitasse platea dictumst. Etiam scelerisque sem a nisi varius varius. Integer erat nulla, semper et
arcu eget, laoreet ornare metus. Fusce lobortis lacinia urna a mollis. Morbi quis ipsum sed quam placerat consectetur.</p>
<p>Sed euismod finibus ornare. Praesent aliquam nunc tincidunt enim vehicula, bibendum auctor odio dapibus. Maecenas ultrices nisi velit. Ut blandit magna quis facilisis porttitor. Curabitur hendrerit quam eget vulputate suscipit. Ut odio mauris, posuere
quis viverra vitae, lobortis finibus erat. Maecenas dictum justo et risus pharetra, eu pharetra arcu porta. Quisque nec hendrerit sem, eu euismod lorem. Phasellus sed purus non velit ullamcorper luctus. Nulla ac sem eget quam condimentum dictum
eu sed odio. Duis ut laoreet est, maximus porttitor mi. Vestibulum et lacus sapien. Quisque at arcu quis nisi sagittis luctus. Praesent varius rhoncus condimentum.</p>
</div>
<div id="sidebar">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
<li>Item 7</li>
<li>Item 8</li>
<li>Item 9</li>
<li>Item 10</li>
<li>Item 11</li>
<li>Item 12</li>
</ul>
</div>
</div>
<div id="footer">
<h3>This is a footer!</h3>
</div>
谢谢。
最佳答案
您正在父级上使用 flex
,您不需要使用 display: table-cell
。 flex 子项的默认对齐方式是 stretch
,这将使它们具有相同的高度。
const close = $("#close");
const sidebar = $("#sidebar");
close.click(() => {
close.toggleClass("closed");
sidebar.toggleClass("closed");
});
h3 {
margin: 0;
}
#header {
display: flex;
align-items: center;
justify-content: space-between;
background: #bebebe;
height: 50px;
}
#close {
float: right;
transition: transform 500ms;
}
#close.closed {
transform: rotate(180deg);
}
#main {
display: flex;
margin: 0 auto;
width: 90%;
}
#content {
background: gainsboro;
flex: 1 0 0;
}
#sidebar {
width: 100px;
background: #a0a0a0;
white-space: nowrap;
overflow-x: hidden;
transition: width 1s;
}
#sidebar.closed {
width: 0;
}
#footer {
display: flex;
align-items: center;
background: #bebebe;
height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="header">
<h3>This is a header!</h3>
<button id="close">Close</button>
</div>
<div id="main">
<div id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla massa turpis, fermentum ac cursus sed, fringilla iaculis dui. Nam tempus dolor pellentesque placerat sodales. Praesent a tortor posuere, fringilla neque eget, aliquet nibh. Aliquam eget
odio id nibh blandit faucibus sit amet sed mi. Nullam at lacus pulvinar dolor euismod facilisis. Curabitur cursus velit tellus, ut vestibulum lorem viverra quis. Ut ipsum lacus, laoreet molestie dolor id, efficitur cursus lorem. Aliquam sed euismod
nulla, sit amet facilisis lectus. Quisque vel nibh consectetur, commodo orci ut, mattis lectus. Donec id dolor id metus mattis faucibus. In hac habitasse platea dictumst. Etiam scelerisque sem a nisi varius varius. Integer erat nulla, semper et
arcu eget, laoreet ornare metus. Fusce lobortis lacinia urna a mollis. Morbi quis ipsum sed quam placerat consectetur.</p>
<p>Sed euismod finibus ornare. Praesent aliquam nunc tincidunt enim vehicula, bibendum auctor odio dapibus. Maecenas ultrices nisi velit. Ut blandit magna quis facilisis porttitor. Curabitur hendrerit quam eget vulputate suscipit. Ut odio mauris, posuere
quis viverra vitae, lobortis finibus erat. Maecenas dictum justo et risus pharetra, eu pharetra arcu porta. Quisque nec hendrerit sem, eu euismod lorem. Phasellus sed purus non velit ullamcorper luctus. Nulla ac sem eget quam condimentum dictum
eu sed odio. Duis ut laoreet est, maximus porttitor mi. Vestibulum et lacus sapien. Quisque at arcu quis nisi sagittis luctus. Praesent varius rhoncus condimentum.</p>
</div>
<div id="sidebar">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
<li>Item 7</li>
<li>Item 8</li>
<li>Item 9</li>
<li>Item 10</li>
<li>Item 11</li>
<li>Item 12</li>
</ul>
</div>
</div>
<div id="footer">
<h3>This is a footer!</h3>
</div>
关于jquery - 表格单元格侧边栏不折叠(动画宽度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44732532/
好的,这听起来很简单,但我已经花了几个小时在谷歌上搜索,我只是找不到解决方案,这并不复杂。 我想创建一个包含图像和文本的表格。我希望表格的每一行都具有相同的高度。我希望文本始终从顶部开始。 IE。 \
在我的网站表单上 - 我的出生日期、月份和年份菜单显示在两行上,我希望它们都显示在同一行上。 当我测试代码时,它显示在一行中,所以我相信一定存在宽度问题。 您可以在右侧表格 (incomeprotec
我们需要跟踪和审核生产,本质上我们有很多订单,但我们似乎在途中丢失了一些产品(废品等)。 为了阻止这种情况,我们现在已在 Google 表格上下了订单,并列出了应有的数量,然后员工会写下收到的数量。
我正在转换我的应用程序,以便它适用于 iOS 7。在应用程序的一部分,我有两个搜索栏,每个搜索栏都有一个与之关联的 UISearchDisplayController。当我搜索 UISearchDis
正如标题所说,非固定表格布局是否与类似的 HTML 表格具有相同的性能问题? 最佳答案 非固定表格的问题在于,要确定一列的宽度,必须加载该列的所有单元格。这仅在...... …您有一个包含几千字节或几
我在使用 Javascript 遍历表格并从一行的第一个单元格获取文本时遇到问题。我想获取此单元格的文本,以便我可以将它与其他内容进行比较,如果文本匹配则删除该行。但是,当我尝试获取文本时,实际出现的
我经常发现自己想要制作一个表格表格——一堆行,每一行都是一个单独的表格,有自己的字段和提交按钮。例如,这是一个宠物店应用程序示例——假设这是一个结帐屏幕,您可以选择更新所选宠物的数量和属性,并在结帐前
看过许多UBB代码,包括JS,ASP,JSP的,一直没发现表格的UBB,虽然可以直接用HTML模式实现相同表格功能,但对于某些开放的站点来说开放HTML模式终究是不合适的,故一直想实现表格的UBB。
表格由 table 标签来定义。每个表格均有若干行(由 tr 标签定义),每行被分割为若干单元格(由 td 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格
我有一个 HTML 与 border-radius和使用 position: sticky 的粘性标题看起来像这样: https://codepen.io/muhammadrehansaeed/pen
对于 iPhone 应用程序,我需要以网格格式显示只读表格数据。该数据可能有许多行和列。 我可以使用 UITableView,但问题是数据很可能会非常宽并且需要滚动。 有没有办法将 UITableVi
我知道这里有类似的问题,但我找不到适合我的答案。 我想要的是显示表单“默认”是选择了某些选项(在这种情况下,除了“Ban Appeal”或“Ban Appeal(西类牙语)”之外的所有内容,我希望仅在
天啊! 我想在Flutter中创建以下非常简单的表。基本上是两列文字,左列右对齐,右列左对齐。如果右列具有多个名称,则每一行都将顶部对齐。 左列应自动调整为最大项目的大小(因为每个标题都有翻译字符串)
我们开始构建 SSAS 表格模型,并想知道大多数人是否拥有一个或多个模型。如果有多个,您是否复制每个所需的表,或者是否有办法在模型之间共享表?我想我知道答案,但我希望那些有更多经验的人能够证实我们的发
tl;博士 如何将任意数量的单词分成两列,总是在最后一列中只有最后一个单词,在第一列中包含所有其他单词? =IFS( LEN(C2)-LEN(SUBSTITUTE(C2," ",""))=1, SP
你们知道一个图表或dable,它可以提供一个简短而简洁但仍然完整且相对最新的现有协议(protocol)及其细节的 View ? (即:ZeroMQ、Rendez-Vous、EMS、...所有这些!:
我才刚刚开始开发MFC应用程序,我希望对整个“控件”概念更加熟悉。我在Visual Studio中使用对话框编辑器,到目前为止,我无法找到添加简单表/网格的功能。这对我来说似乎很基础,但是我什至找不到
我需要对一个非常大的表或矩阵执行计算和操作,大约有 7500 行和 30000 列。 矩阵数据将如下所示: 文件编号|字1 |字 2 |字 3 |... |字 30000 |文档类 0032 1 0
我正在使用设计非常糟糕的数据库,我需要在编写查询之前重新调整表格。 以下是我的常见问题: 时间戳已分为两列(一列用于日期,另一列用于时间)。 一些字符串列也被拆分成多个列。 大多数字符串都有固定长度和
我正在尝试显示 $row["name"] 通过 HTML Table 的形式,如下所示: echo " ".$row["name"]." "; 我也从这里获取行变量: $que
我是一名优秀的程序员,十分优秀!