我正在写一个聊天。当我在一个 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中的正确结果:
索引.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>
样式.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;
}