我正在用纯HTML5和CSS3构建一个Web应用的前端,并使用flexbox进行布局。我完成了第一页并将其发送给客户。他在一些代码周围使用了Angular2组件标记,导致布局出现问题。
以下是问题的示例:
原始布局:https://jsfiddle.net/starbreaker/jrqbhsuq/ HTML:
他将第一和第二个子Div包装在Angular2组件标签中,代码如下: https://jsfiddle.net/starbreaker/1c15q243/ 我明白出了什么问题-这些新添加的Angular2标签变成了Flex项目,破坏了一切。客户说"这些Angular标签被浏览器忽略了",但这显然在这里不是这种情况。
他还说:"我无法完全控制插入的额外标签。因此设计/CSS必须能够应对额外的非HTML元素(通常由浏览器忽略)。"
我试图为这些新的Angular标签应用内联样式(基本上是从div中添加样式),并解决了问题,但显然这不是一个很好的解决方案,也不可扩展。
我在这里找到了类似的问题:Using flexbox with angular 2 components 不幸的是,我对Angular没有任何经验,也不知道如何实现这个问题的解决方案。
因此,有可能只通过CSS/HTML修复这个问题吗?
以下是问题的示例:
原始布局:https://jsfiddle.net/starbreaker/jrqbhsuq/ HTML:
<div class="wrapper">
<div class="child first">
<h1>Some content</h1>
</div>
<div class="child second">
<h1>Some more content</h1>
<p>Help me if you can, I'm feeling down
And I do appreciate you being 'round
Help me get my feet back on the ground
Won't you please, please help me
</p>
<p>When I was younger so much younger than today
I never needed anybody's help in any way
(But) But now these days are gone (These days are gone), I'm not so self assured
(I know I've found) Now I find I've changed my mind and opened up the doors
</p>
</div>
</div>
CSS:
.wrapper {
display: flex;
}
.child {
background-color: yellow;
padding: 0 1em;
flex: 1;
}
.first {
display: flex;
align-items: center;
background-color: #F6CEF5;
}
.second {
background-color: #CEF6CE;
}
他将第一和第二个子Div包装在Angular2组件标签中,代码如下: https://jsfiddle.net/starbreaker/1c15q243/ 我明白出了什么问题-这些新添加的Angular2标签变成了Flex项目,破坏了一切。客户说"这些Angular标签被浏览器忽略了",但这显然在这里不是这种情况。
他还说:"我无法完全控制插入的额外标签。因此设计/CSS必须能够应对额外的非HTML元素(通常由浏览器忽略)。"
我试图为这些新的Angular标签应用内联样式(基本上是从div中添加样式),并解决了问题,但显然这不是一个很好的解决方案,也不可扩展。
我在这里找到了类似的问题:Using flexbox with angular 2 components 不幸的是,我对Angular没有任何经验,也不知道如何实现这个问题的解决方案。
因此,有可能只通过CSS/HTML修复这个问题吗?
后续编辑:
我在许多地方使用了不同的CSS属性的flexbox,并且事先不知道将插入哪些Angular标记以及它们的位置,因此在CSS中重新设计它们似乎不是一个好的解决方案...
.wrapper > *{}
这样的东西,但我不是这方面的专家。演示,可能有更好的解决方案。 - Ricky Ruiz