我正在使用 flexbox 来显示彼此水平的 block 引用和作者/头像。这是在幻灯片 (flexslider) 中,但这似乎不是问题的原因。
在我们点击 IE10 之前,这一切正常。它似乎在 Chrome、Firefox、Opera、Safari、Edge 和 IE11 中运行良好。
我遇到的问题是引文末尾的文字被 chop 了。如果您一开始没有看到它,您可能需要调整视口(viewport)的大小。这可能是由于我在文本的每一侧都有填充,以便为自定义打开/关闭引号留出空间。
IE10 中的另一个问题是当文本很长时(请参阅第一个引用中的“James Hetfield Longname”)它不会换行。这可能与我的其他问题有关,因为我猜文本也没有正确换行。
这里有一些示例链接。我已经包含了一个 CodePen 以及我的 HTML 模板的精简版本。
代码笔:http://codepen.io/moy/pen/XdLELV 模板:http://moymadethis.com/flex/quote.html
真的希望有人能帮助解决这个问题!
这是代码,因为它让我添加了一些东西(尽管我认为隔离 CSS/HTML 对我自己没有特别帮助)!
编辑:我应该补充一点,我使用 Autoprefixer 来流行额外的 flex 前缀。
HTML:
<div class="flexslider">
<ul class="slides">
<li>
<blockquote class="feature-quote">
<p class="feature-quote__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</p>
<footer class="feature-quote__cite">
<img src="img/temp/avatars/avatar-james.jpg" class="feature-quote__avatar" />
<p><strong class="name">James Hetfield Hetfield</strong> Damage Inc.</p>
</footer>
</blockquote>
</li>
<li>
<blockquote class="feature-quote">
<p class="feature-quote__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</p>
<footer class="feature-quote__cite">
<img src="img/temp/avatars/avatar-james.jpg" class="feature-quote__avatar" />
<p><strong class="name">James Hetfield</strong> Damage Inc.</p>
</footer>
</blockquote>
</li>
<li>
<blockquote class="feature-quote">
<p class="feature-quote__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</p>
<footer class="feature-quote__cite">
<img src="img/temp/avatars/avatar-james.jpg" class="feature-quote__avatar" />
<p><strong class="name">James Hetfield</strong> Damage Inc.</p>
</footer>
</blockquote>
</li>
</ul>
</div>
CSS:
/* Base blockquote styles */
blockquote {
margin-bottom: $baseline*2;
overflow: hidden; // Fixes bug when inside flexslider when open/close quote-marks duplicate.
padding: $baseline $baseline 0 0;
p {
margin-bottom: $baseline/2;
}
> p {
color: $blue-light;
@include font-size(25);
line-height: $baselineheight/1.25;
font-weight: 300;
padding-left: 30px;
-webkit-font-smoothing: antialiased;
&:before,
&:after {
background: url(../img/content/quote-open.png) no-repeat 0 0;
content: "";
display: inline-block;
height: 24px;
margin: 0 10px 0 -30px;
position: relative;
top: -5px;
width: 21px;
}
&:after {
background: url(../img/content/quote-close.png) no-repeat 0 0;
margin: 5px 0 0 5px;
position: absolute;
top: auto;
}
}
footer {
padding-left: 30px;
}
.name {
color: $blue;
display: block;
text-transform: uppercase;
}
}
/* Feature (avatar) quotes */
.feature-quote {
margin-bottom: $baseline;
padding-top: 5px;
}
.feature-quote footer p {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.feature-quote__cite {
margin-top: $baseline;
}
.feature-quote__avatar {
border: 5px solid $blue-lighter;
border-radius: 100%;
display: inline-block;
height: 60px;
margin-right: $baseline/2;
width: 60px;
}
/* Above 768px (Feature quote side-by-side */
@media only screen and (min-width: 768px) {
blockquote {
margin: 0 25px $baseline*2;
}
.feature-quote {
display: flex;
}
.feature-quote__text {
order: 2;
width: 66.66666%;
}
.feature-quote__cite {
display: flex;
align-items: center;
justify-content: center;
order: 1;
margin-top: 0;
padding-right: 30px;
width: 33.33333%;
}
.feature-quote__avatar {
height: 80px;
width: 80px;
}
.no-flexbox {
.feature-quote {
margin: 0 auto $baseline;
max-width: 800px;
}
.feature-quote__text,
.feature-quote__cite {
text-align: center;
width: 100%;
}
.feature-quote__cite {
p {
text-align: left;
}
}
}
}
最佳答案
扩展 Pete 关于 IE10 不正确支持 flexbox 的评论。
http://caniuse.com/#search=flex
关于 IE10:
Only supports the 2012 syntax
Need the -ms- prefix
这个答案实际上有很多关于 IE10 中 flex 的信息:https://stackoverflow.com/a/21306343/2117156
关于javascript - Flexbox 文本切断/不换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343962/