我正在设计一个基于 Hockey 的网站。我试图创建一个实时游戏的“轮播”(我没有使用 Bootstrap 4 轮播)。我想翻转标签,以便分数始终位于团队 Logo 的内部。当我这样做时,我收到了一个奇怪的副作用:
我目前正在处理视口(viewport)介于 786 像素和 991.98 像素之间时的样式。以任何其他方式查看,它的样式将不正确。
忽略第一个框(我只是更改了下面代码中注释 <--- two --->
下表示的第二个 block 的代码),您会注意到第二个框中的得分块的样式不匹配。
下面的代码应该可以重现问题。 (除了将 css 和 img 指向正确的位置)
据我所知,左边的记分栏有一个“空白文本节点”标签?元素?在图像和乐谱之间创建空间。然而,在右侧,这个“空白文本节点”出现在 ID 为 score-md 的 div 中,并创建了额外的背景。
@media (max-width: 575.98px) {
#gameCards {
display: none;
}
}
@media (min-width: 576px) and (max-width: 767.98px) {
#gameCards {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
#gameCards {
display: initial;
}
.team-thumbnail {
width: 20px;
height: 20px;
}
#score-md {
width: 20px;
height: 20px;
}
#teamScore-md {
display: initial;
}
#teamScore-lg {
display: none;
}
#score-md {
display: initial;
font-weight: bold;
}
#gameTime {
font-weight: bold;
font-size: 12px;
}
.helper {
width: 1px;
height: 1px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
#score-lg {
display: initial;
}
#teamScore-md {
display: none;
}
}
#teamScore, #teamScore-lg, #teamScore-md {
border-width: 2px !important;
}
#gameCards {
max-width: 100% !important;
max-height: 200px;
}
.games-group>.row {
overflow-x: auto;
white-space: nowrap;
}
.games-group>.row>.col-md-3 {
display: inline-block;
float: none;
}
.games-group>.row>.col-lg-2 {
display: inline-block;
float: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Customized CSS/Fonts/ETC. -->
<link href="https://fonts.googleapis.com/css?family=Fira+Mono" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<title>AStats Hockey</title>
</head>
<body>
<div id="gameCards" class="container games-group">
<div class="row text-center bg-secondary flex-nowrap">
<div class="col-md-3 col-lg-2 card bg-secondary border-light p-1">
<div class="card-body p-0">
<h6 class="card-title text-white mb-1">NYR at NYR</h6>
<div class="row mx-0">
<div class="col-4 p-0">
<div id="teamScore-md"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-md" class="rounded bg-dark">
<span class="align-top text-white">0</span>
</div>
</div>
<div id="teamScore-lg"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-lg" class="rounded bg-dark">
<span id="score-lg" class="rounded bg-dark text-white p-1">0</span>
</div>
</div>
</div>
<div class="col-4 p-0 my-auto">
<div id="gameTime" class="row rounded bg-dark justify-content-center m-0 p-0">
<p class="text-white m-0">End 3rd</p>
<p class="text-white m-0">00:00</p>
</div>
</div>
<div class="col-4">
<div id="teamScore-md"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-md" class="rounded bg-dark">
<span class="align-top text-white">0</span>
</div>
</div>
<div id="teamScore-lg"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<div id="score-lg" class="rounded bg-dark">
<span id="score-lg" class="rounded bg-dark text-white p-1">0</span>
</div>
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-md" class="rounded bg-dark">
<span class="align-top text-white">0</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- two -->
<div class="col-md-3 col-lg-2 card bg-secondary border-light p-1">
<div class="card-body p-0">
<h6 class="card-title text-white mb-1">NYR at NYR</h6>
<div class="row mx-0">
<div class="col-4 p-0 m-auto">
<div id="teamScore-md"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-md" class="rounded bg-dark px-1">
<span class="text-white">0</span>
</div>
</div>
<div id="teamScore-lg"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-lg" class="rounded bg-dark">
<span id="score-lg" class="rounded bg-dark text-white p-1">0</span>
</div>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="gameTime" class="row rounded bg-dark justify-content-center m-0 p-0">
<p class="text-white m-0">End 3rd</p>
<p class="text-white m-0">00:00</p>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="teamScore-md"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<div id="score-md" class="rounded bg-dark px-1">
<span class="text-white">0</span>
</div>
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
</div>
<div id="teamScore-lg"
class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<div id="score-lg" class="rounded bg-dark">
<span id="score-lg" class="rounded bg-dark text-white p-1">0</span>
</div>
<img class="team-thumbnail mb-0"
src="../../assets/img/teams/New_York_Rangers.svg"></img>
<div id="score-md" class="rounded bg-dark">
<span class="align-top text-white">0</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- Popper.js, then Bootstrap JS -->
<script defer src="https://use.fontawesome.com/releases/v5.7.1/js/all.js"
integrity="sha384-eVEQC9zshBn0rFj4+TU78eNA19HMNigMviK/PU/FFjLXqa/GKPgX58rvt5Z8PLs7"
crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</body>
</html>
最佳答案
发生这种情况是因为 #score-md
具有 display: inline;
,并且内联元素中的空格(包括换行符)显示为......好吧,空格。
您可以将 #score-md
上的 display: initial;
更改为 display: inline-block;
,但这会破坏您的布局一点点。
最简单的解决方法是从 #score-md
中删除所有空格,因此基本上更改为:
<div id="score-md" class="rounded bg-dark px-1">
<span class="text-white">0</span>
</div>
为此:
<div id="score-md" class="rounded bg-dark px-1"><span class="text-white">0</span</div>
检查下面的片段以了解其工作原理。
另请注意,我已经修剪了您的 @media
查询以使示例更易于理解。
#gameCards {
display: initial;
}
.team-thumbnail {
width: 20px;
height: 20px;
}
#score-md {
width: 20px;
height: 20px;
}
#teamScore-md {
display: initial;
}
#teamScore-lg {
display: none;
}
#score-md {
display: initial;
font-weight: bold;
}
#gameTime {
font-weight: bold;
font-size: 12px;
}
.helper {
width: 1px;
height: 1px;
}
#teamScore,
#teamScore-lg,
#teamScore-md {
border-width: 2px !important;
}
#gameCards {
max-width: 100% !important;
max-height: 200px;
}
.games-group>.row {
overflow-x: auto;
white-space: nowrap;
}
.games-group>.row>.col-md-3 {
display: inline-block;
float: none;
}
.games-group>.row>.col-lg-2 {
display: inline-block;
float: none;
}
<!-- Customized CSS/Fonts/ETC. -->
<link href="https://fonts.googleapis.com/css?family=Fira+Mono" rel="stylesheet">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<div id="gameCards" class="container games-group">
<div class="row text-center bg-secondary flex-nowrap">
<!-- Card with whitespaces -->
<div class="col-md-3 col-lg-2 card bg-secondary border-light p-1">
<div class="card-body p-0">
<h6 class="card-title text-white mb-1">Whitespace</h6>
<div class="row mx-0">
<div class="col-4 p-0 m-auto">
<div id="teamScore-md" class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0" src="//upload.wikimedia.org/wikipedia/commons/a/ae/New_York_Rangers.svg">
<div id="score-md" class="rounded bg-dark px-1">
<span class="text-white">0</span>
</div>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="gameTime" class="row rounded bg-dark justify-content-center m-0 p-0">
<p class="text-white m-0">End 3rd</p>
<p class="text-white m-0">00:00</p>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="teamScore-md" class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<div id="score-md" class="rounded bg-dark px-1">
<span class="text-white">0</span>
</div>
<img class="team-thumbnail mb-0" src="//upload.wikimedia.org/wikipedia/commons/a/ae/New_York_Rangers.svg">
</div>
</div>
</div>
</div>
</div>
<!-- Card without whitespaces -->
<div class="col-md-3 col-lg-2 card bg-secondary border-light p-1">
<div class="card-body p-0">
<h6 class="card-title text-white mb-1">No whitespace</h6>
<div class="row mx-0">
<div class="col-4 p-0 m-auto">
<div id="teamScore-md" class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<img class="team-thumbnail mb-0" src="//upload.wikimedia.org/wikipedia/commons/a/ae/New_York_Rangers.svg">
<!-- This inline div is what caused the problem -->
<div id="score-md" class="rounded bg-dark px-1"><span class="text-white">0</span></div>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="gameTime" class="row rounded bg-dark justify-content-center m-0 p-0">
<p class="text-white m-0">End 3rd</p>
<p class="text-white m-0">00:00</p>
</div>
</div>
<div class="col-4 p-0 m-auto">
<div id="teamScore-md" class="row justify-content-center rounded bg-light border border-dark p-1 m-0">
<!-- This inline div is what caused the problem -->
<div id="score-md" class="rounded bg-dark px-1"><span class="text-white">0</span></div>
<img class="team-thumbnail mb-0" src="//upload.wikimedia.org/wikipedia/commons/a/ae/New_York_Rangers.svg">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- Popper.js, then Bootstrap JS -->
<script defer src="https://use.fontawesome.com/releases/v5.7.1/js/all.js" integrity="sha384-eVEQC9zshBn0rFj4+TU78eNA19HMNigMviK/PU/FFjLXqa/GKPgX58rvt5Z8PLs7" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
关于html - 尝试交换标签的顺序会改变 Bootstrap/CSS 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54702204/