【发布时间】:2015-10-02 18:42:54
【问题描述】:
我正在写一个聊天。当我在一个 HTML 中编写所有 DOM 模块时,它在 Chrome 中可以正常工作,但 DOM 模块在 Edge 中无法正常工作。但后来我将所有 DOM 模块移动到另一个 HTML 文件中。现在它可以在 Edge 中使用。但是现在 Flexbox 并不适用于所有浏览器。
我写了几个示例:
一个 HTML 中的所有 DOM 模块: http://plnkr.co/edit/m9oKpnV2CWJvVu9Ry3PQ?p=preview
另一个 HTML 中的 DOM 模块: http://plnkr.co/edit/n2rV8kDravia4CTNOSL5?p=preview
我不知道为什么,但在 Chrome 中,第二个示例可以正常工作,尽管在完整项目中它与 Flexbox 有问题。 但是第二个示例在 Edge 中存在相同的问题。请参见第二张图片。
Edge 中的第一个示例(未加载 DOM 模块):
Edge 中的第二个示例(“flex-basis: 0”和“flex-grow: 1”不起作用):
Chrome 中的正确结果:
index.html:
<!DOCTYPE html>
<html>
<head>
<script src="http://polygit.org/components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="http://polygit.org/components/polymer/polymer.html" rel="import">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class='main-block'>
<div class='title'>
<span>Title</span>
</div>
<my-module></my-module>
</div>
</body>
</html>
<dom-module id="my-module">
<template>
<div class='messages'>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
<div class='message'></div>
</div>
<div class='title'>
<span>Bottom</span>
</div>
</template>
<script>
Polymer({
is: "my-module"
});
</script>
</dom-module>
style.css:
.main-block
{
display: flex;
flex-direction: column;
border: solid 1px red;
width: 300px;
height: 400px;
margin: 0 auto;
}
.title
{
background-color: red;
min-height: 50px;
height: 50px;
margin: 10px;
text-align: center;
}
my-module
{
display: flex;
flex-direction: column;
flex-basis: 0;
flex-grow: 1;
border: solid 1px green;
margin: 10px;
}
.messages
{
flex-grow: 1;
border: solid 1px blue;
margin: 10px;
overflow-x: hidden;
overflow-y: auto;
}
.message
{
background-color: pink;
min-height: 50px;
height: 50px;
margin: 10px;
}
【问题讨论】:
-
新标题改了之后就大错特错了。这是因为一个问题有2个问题。
标签: css polymer flexbox custom-element html-imports