html - 父类更改时的CSS转换?

标签 html css css-transitions

我正在使用 CSS 父类为某些数据定义多个布局。当我更改父类时,布局会根据需要完美更改,但我认为添加一些 CSS 动画(过渡)可能会很有趣。我似乎无法让它工作。我发现了另一个类似的问题,但没有答案,而且也不完全相同(或直接)。

这是 fiddle :http://jsfiddle.net/scottbeeson/wmK2F/1/

我现在真的不在乎什么过渡;高度、宽度、颜色等等。一旦有人告诉我我做错了什么,我就可以调整它。

HTML:

<div id="toggleLayout">Click To Toggle</div>
<div class="layout layoutCards">
    <span class="entity">
        Test
    </span>
    <span class="entity">
        Test
    </span>    
    <span class="entity">
        Test
    </span>    
    <span class="entity">
        Test
    </span>    
</div>

CSS:

.entity { /* animate */
  -webkit-transition: height .5s linear;
  -moz-transition: height .5s linear;
}

.layoutCards .entity {
    display: inline-block;
    border: 1px solid blue;
    margin: 5px;
    height: 100px;
    width: 100px;
}

.layoutList .entity {
    display: block;
    border: 1px solid blue;
    margin: 5px;
    height: 20px;
}

最佳答案

您正在将元素的显示inline-block 更改为block。您无法转换此类更改。您可以轻松地使两者的 display 相同;但是,这消除了所需的行为。

与通过 display 属性操作元素相反,您可以将 display:inline-block 换成 float:left,设置float:none,在第二个元素上,并保留 display:block。这似乎有效。 jsFiddle here ,但由于发生了根本性的变化,它不会产生漂亮的动画..

.layoutCards .entity {
    float: left;
}

.layoutList .entity {
    float: none;
    display:block;
}

或者,您也可以在两者上都设置 display:block。生产这个 - example here .

关于html - 父类更改时的CSS转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664374/

相关文章:

css - CSS 显示属性的过渡

html - 当我沿 x 轴旋转元素时,尺寸会增加吗?

javascript - 淡入/淡出 RGBA 背景颜色 - Jquery 脚本

python - 使用 lxml 抓取动态 html 字段

jquery - 如何在 <div> 对象恢复到其原始位置后出现随机数函数?

html - 所有屏幕分辨率的相同显示(PC/移动/平板电脑)

css - 我的代码中有错误如何使响应图像居中?

css - 为什么这段代码不起作用 - sass

html - 如何使图像重复而不是拉伸(stretch)?

javascript - HTML 中 href 链接的悬停效果