我有一个带有展开菜单的面板,其他类似:

html - CSS,Firefox和IE中不同的展开和折叠行为-LMLPHP

当我在IE 10和Firefox 55.0.3中展开面板时,似乎是这样的:

html - CSS,Firefox和IE中不同的展开和折叠行为-LMLPHP

但是在chrome中,效果很好

html - CSS,Firefox和IE中不同的展开和折叠行为-LMLPHP

.tbl-main分为两部分:可扩展搜索面板和结果面板(tbl容器)。我使用flex布局来覆盖parent.Search面板在这里只有15px..tbl-main的其余部分必须是.tbl-container。但是浏览器的行为很奇怪。这是我的HTML和CSS代码



.tbl-main {
  height: 100%;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
  display: -webkit-box;  /* OLD - iOS 6-, Safari 3.1-6 */
  display: -moz-box;  /* OLD - Firefox 19- (doesn't work very well) */
  display: -ms-flexbox;  /* TWEENER - IE 10 */
  display: -webkit-flex;  /* NEW - Chrome */
  display: flex;  /* NEW, Spec - Opera 12.1, Firefox 20+ */
  -webkit-box-direction: normal;
  -moz-box-direction: normal;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.tbl-searchpanel {
  min-height: 15px;
  background: yellow;
}

.tbl-container {
  min-height: 50px;
  background-color: blue;
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.tbl-searchpanel input {
  display: none;
  visibility: hidden;
}

.tbl-searchpanel label {
  display: block;
  padding: 0.5em;
  text-align: center;
  border-bottom: 1px solid #CCC;
  color: #666;
  background-color: lightcoral;
  min-height: 100%;
}

.tbl-searchpanel label:hover {
  color: #000;
}

.tbl-searchpanel label::before {
  font-family: Consolas, monaco, monospace;
  font-weight: bold;
  font-size: 15px;
  content: "+";
  vertical-align: central;
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 3px;
  background: radial-gradient(ellipse at center, #CCC 50%, transparent 50%);
}

#expand {
  width: 100%;
  height: 250px;
  overflow: hidden;
  transition: height 0.5s;
  /*background: url(http://placekitten.com/g/600/300);*/
  /*color: #FFF;*/
  background-color: red;
  display: none;
}

#toggle:checked~#expand {
  display: block;
}

#toggle:checked~label::before {
  content: "-";
}

<div class="tbl-main">

  <div class="tbl-searchpanel">
    <input id="toggle" type="checkbox" />
    <label for="toggle"></label>
    <div id="expand"></div>
  </div>

  <div class="tbl-container">
  </div>

</div>

最佳答案

min-height: 100%;规则中删除.tbl-searchpanel label

堆栈片段



html, body {
  height: 100%;
  margin: 0;
}

.tbl-main {
  height: 100%;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
  display: -webkit-box;  /* OLD - iOS 6-, Safari 3.1-6 */
  display: -moz-box;  /* OLD - Firefox 19- (doesn't work very well) */
  display: -ms-flexbox;  /* TWEENER - IE 10 */
  display: -webkit-flex;  /* NEW - Chrome */
  display: flex;  /* NEW, Spec - Opera 12.1, Firefox 20+ */
  -webkit-box-direction: normal;
  -moz-box-direction: normal;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.tbl-searchpanel {
  min-height: 15px;
  background: yellow;
}

.tbl-container {
  min-height: 50px;
  background-color: blue;
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.tbl-searchpanel input {
  display: none;
  visibility: hidden;
}

.tbl-searchpanel label {
  display: block;
  padding: 0.5em;
  text-align: center;
  border-bottom: 1px solid #CCC;
  color: #666;
  background-color: lightcoral;
  /* min-height: 100%;                     removed  */
}

.tbl-searchpanel label:hover {
  color: #000;
}

.tbl-searchpanel label::before {
  font-family: Consolas, monaco, monospace;
  font-weight: bold;
  font-size: 15px;
  content: "+";
  vertical-align: central;
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 3px;
  background: radial-gradient(ellipse at center, #CCC 50%, transparent 50%);
}

#expand {
  width: 100%;
  height: 250px;
  overflow: hidden;
  transition: height 0.5s;
  /*background: url(http://placekitten.com/g/600/300);*/
  /*color: #FFF;*/
  background-color: red;
  display: none;
}

#toggle:checked~#expand {
  display: block;
}

#toggle:checked~label::before {
  content: "-";
}

<div class="tbl-main">

  <div class="tbl-searchpanel">
    <input id="toggle" type="checkbox" />
    <label for="toggle"></label>
    <div id="expand"></div>
  </div>

  <div class="tbl-container">
  </div>

</div>

关于html - CSS,Firefox和IE中不同的展开和折叠行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46419353/

10-12 13:17