我有使用flex-box的以下代码
<!DOCTYPE html>
<polymer-element name='test-flex'>
<template>
<style>
.lab-flex-col-container {
display: flex;
flex-flow: column;
align-content: center;
background-color: gold;
border-radius:5px;
margin: 5px;
}
.lab-flex-col {
display:flex;
flex-flow:column;
align-self:center;
margin:5px;
}
.margin2 { margin: 2px; }
</style>
<form id='form'
class='form'>
<div class='lab-flex-col-container'>
<div class='lab-flex-col' id='hidden-does-not-work' hidden>
<input id='hidden-works' type='text'>
</div>
<div id='hidden-works' hidden>
<textarea></textarea>
</div>
<div id='hidden-does-not-work-here-either' class='lab-flex-col' hidden>
<button>Save</button>
</div>
</div>
</form>
</template>
<script type="application/dart;component=1">
import 'package:polymer/polymer.dart';
import 'dart:html';
@CustomTag( 'test-flex' )
class TestFlex extends PolymerElement
{
TestFlex.created() : super.created();
ready()
{
$['hidden-does-not-work'].hidden = true;
}
void syncDb ( Event e, var detail, var target )
{
}
@override
void enteredView()
{
super.enteredView();
$['hidden-does-not-work-here-either'].hidden = true;
}
}
</script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
为什么lab-flex-col类的存在会阻止隐藏文本输入?我试过隐藏='隐藏',这也不起作用.
当像textarea元素中那样存在hidden时,它按预期工作,但是一旦添加了flex-box类,它就会停止工作并且元素仍然可见.
创建一个.hidden
类并将display:none
其添加到您的 div 类中。
HTML:
<div class='lab-flex-col-container'>
<div class='lab-flex-col hidden' id='hidden-does-not-work'>
<input id='hidden-works' type='text'>
</div>
<div id='hidden-works' hidden>
<textarea></textarea>
</div>
<div id='hidden-does-not-work-here-either' class='lab-flex-col hidden'>
<button>Save</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.lab-flex-col {
display: flex;
}
.lab-flex-col.hidden {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
这是一个工作小提琴:http://jsfiddle.net/2mNux/3/
最简单的解决方法是使用属性选择器覆盖整个行为。无需更改文档:
[hidden]{
display:none;
}
Run Code Online (Sandbox Code Playgroud)
我猜默认行为背后的逻辑是允许使用CSS覆盖“隐藏的” html属性。“隐藏”或多或少是隐式的“显示:无”,因此覆盖“显示”样式是自然的选择。但是我同意,修改纯布局会影响可见性似乎是没有思想的。
这完成了工作:
[hidden] {
display: none !important;
}
Run Code Online (Sandbox Code Playgroud)
请注意,该!important
部分对于防止display: none
声明被其他 CSS 代码覆盖很重要。
更多信息:https : //meowni.ca/hidden.is.a.lie.html