Javascript 根据浏览器宽度通过平滑过渡更改网格中的列数
我在一个简单的HTML和CSS网格中遇到了一个小问题。我有一个n个盒子的网格。它可以有任意数量的列,具体取决于浏览器或其父宽度 将显示应用于内联块非常简单,如下例所示:Javascript 根据浏览器宽度通过平滑过渡更改网格中的列数,javascript,jquery,css,Javascript,Jquery,Css,我在一个简单的HTML和CSS网格中遇到了一个小问题。我有一个n个盒子的网格。它可以有任意数量的列,具体取决于浏览器或其父宽度 将显示应用于内联块非常简单,如下例所示: ul { list-style: none; } ul li { width: 100px; height: 100px; display: inline-block; background: #f00; } 看 但是,当有人更改浏览器的宽度时,我希望列的数量在平滑过渡中更改。这在C
ul {
list-style: none;
}
ul li {
width: 100px;
height: 100px;
display: inline-block;
background: #f00;
}
看
但是,当有人更改浏览器的宽度时,我希望列的数量在平滑过渡中更改。这在CSS中是可能的吗?或者有好的jQuery插件或技巧吗
例如:
我正在寻找一个非常简单和小的解决方案。因为我不能为那个小东西添加一个完整的库。我已经在应用程序中使用jQuery了。因此,如果可以使用CSS和jQuery。那太好了。是的,您可以更改当前浏览器的动态页面。我决定您可以使用jQuery中的
$(window).width()
检查浏览器宽度,并且您可以使用事件处理程序,如resize()
在当前用户更改浏览器宽度时附加浏览器宽度。。。还有一件事:当我们在CSS中这样做时,大多数开发人员都会动态地将网站的宽度设置为100%
//这是我添加的CSS媒体查询示例:-
CSS媒体查询可以通过您能够定义的所有方式添加到CSS中:
第一个示例:当当前页面宽度不高于或低于480px时,链接特定CSS:
我建议您使用第一个示例。我们知道我们可以覆盖CSS网格,当浏览器调整大小时,您可以根据需要设置很多时间,使用不同的文件名,您可以创建更多类似下面这样的.CSS
文件和链接
<link rel="stylesheet" type="text/css" href="smallscreen.css" media="only screen and (max-width: 480px)" />
第三个示例:作为媒体规则,在
元素中:
<style type="text/css">
@media only screen and (max-width: 480px){
/* rules defined inside here are only applied to browsers that support CSS media queries and the browser window is 480px or smaller */
}
</style>
Firefox:
@media screen and (-webkit-animation) {
div.grid_24 {
// Webkit only rules 4
}
}
@media screen and (max-width:320px;) {
div.grid_24 {
//..
}
}
@media all (-o-min-device-pixel-ratio:0) {
div.grid_24{
//..
} // as i know maybe for opera 10 and above
@media all and (max-width:480px) {
div.grid_24 {
//..
}
}
。。。和歌剧:
@media screen and (-webkit-animation) {
div.grid_24 {
// Webkit only rules 4
}
}
@media screen and (max-width:320px;) {
div.grid_24 {
//..
}
}
@media all (-o-min-device-pixel-ratio:0) {
div.grid_24{
//..
} // as i know maybe for opera 10 and above
@media all and (max-width:480px) {
div.grid_24 {
//..
}
}
或者您可以对所有人使用:
@media screen and (-webkit-animation) {
div.grid_24 {
// Webkit only rules 4
}
}
@media screen and (max-width:320px;) {
div.grid_24 {
//..
}
}
@media all (-o-min-device-pixel-ratio:0) {
div.grid_24{
//..
} // as i know maybe for opera 10 and above
@media all and (max-width:480px) {
div.grid_24 {
//..
}
}
就这些。如果您想要更多关于媒体查询的参考,您可以查看,或者只需使用属性来设置列的宽度(假定它将以em
为单位,而不是px
),然后将所有li
项与列的宽度设置放在一个容器中
当我调整浏览器窗口的大小时,该示例会平滑地更改列数。你的意思是什么..你想创建动态网页吗?网格(部分)中的内容可以是动态的,也可以不是动态的。但网格的宽度和网格中的列数应该是动态的(根据浏览器的宽度进行更改)。为了便于参考,我知道即使我们不需要jQuery,我们也只能通过CSS来实现它。我的问题是列必须通过平滑的事务进行更改。在我之前发送给你的示例中,通过减少浏览器宽度来查看效果哦..我认为你可以使用css3关键帧检查w3school-伙计,可能是我无法解释你,或者你没有阅读我的问题,并且看到了我发送的两个链接以完全澄清。不管怎样,谢谢。好的。之前很抱歉,现在我明白你的意思了。正如我所想的那样,当我们在css动态网页中预期在特定的浏览器上显示时,我们希望显示浏览器与其他浏览器之间的差异,我们可以使用css媒体查询。。。。。我再加上上面的例子,你不会明白我的问题,伙计:(谢谢,这是一个很好的解决方案。但我的情况有点不同。我的主要问题是我想保留相同的块(节)按原样。只需在缩小浏览器时将其移到另一行,它就会随着动画移到下一行。再次感谢上述解决方案,我可以在其他地方使用它:)