Bootstrap 4:制作响应式“pixelart”DIV

Posted

技术标签:

【中文标题】Bootstrap 4:制作响应式“pixelart”DIV【英文标题】:Bootstrap 4: make a responsive "pixelart" DIV 【发布时间】:2018-07-24 23:14:54 【问题描述】:

我是 Bootstrap 4 的初学者,我已经仔细阅读了文档,但一段时间以来我一直在努力使我的项目完全响应。

我的 html

<!DOCTYPE html>
<html>
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <title>SwaggySauron</title>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
   <link rel="stylesheet" href="style.css" />
 </head>
 <body>


      <div class="container">
        <div class="swaggysauron">
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 offset-9 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix offset-3 purple"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix offset-3 pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix offset-2 purple"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix black"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix offset-2 pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix black"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix offset-1 purple"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix black"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix offset-1 pink"></div>
          <div class="col-1 pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix offset-1 purple"></div>
          <div class="col-1 pix cyan"></div>
          <div class="col-1 pix purple"></div>
          <div class="col-1 pix offset-1 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix offset-1 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix offset-3 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix offset-2 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix offset-3 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix offset-4 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
        <div class="row">
          <div class="col-1 pix offset-4 pink"></div>
          <div class="col-1 pix pink"></div>
          <div class="col-1 pix pink"></div>
        </div>
    </div>
  </div>
 </body>

我的 CSS:

.pink 
border: 3px solid pink;
background-color: pink;

.purple 
border: 3px solid purple;
background-color: purple;

.cyan 
border: 3px solid #00ffff;
background-color: #00ffff;

.black 
border: 3px solid black;
background-color: black;


.pix 
height: 50px;
border: 1px solid white;


.swaggysauron 
min-width: 380px;

所以我的问题是我希望我的.swaggysauron DIV(包含我所有的彩色方块)保持其在页面上的初始位置,而不是在屏幕太小时时消失。我认为它是部分响应,但我觉得我错过了一些东西。

您能否给我一个提示或解释我的错误在哪里?

【问题讨论】:

我不明白问题/问题是什么。 【参考方案1】:

首先,如果您打算实现完全响应,则不能将盒子的高度固定。最终你需要一个正方形,你可以通过 here 解释的一点 css 技巧来实现。

那么您将不得不在.col-1swaggysauron 上工作,如jsfiddle here 所示。

.col-1padding:0;
.swaggysauron 
    width: 380px;
    max-width: 100%;

swaggysauron 中指定的 min-width.col-1 中的 padding 在这种情况下是个麻烦。

【讨论】:

感谢您的回答和解释,对我帮助很大,结果正是我所寻求的。我正在阅读您的最后一句话,“填充”之后是否缺少部分? 不客气。是的,这是一个错字。你可以忽略它。我在上次编辑中删除了相同的内容。【参考方案2】:

如果你的意思是你也希望高度是响应式的,你可以为它添加这个 CSS:

html, body, .container, .swaggysauron 
  height: 100%;

.row 
  height: 8.33%;

.col-1, .pix 
  height: 100%;

它首先将容器定义为 100% 高(即窗口的高度),然后将总高度的 1/12(即 8.33%)的高度应用于行以将它们全部放入容器中(实际上是 1/11,因此您可以将其更改为 9.09%),然后确保 .col-1 和 .pix 元素完全填充行的高度。

在代码笔中:https://codepen.io/anon/pen/MQvRxN

【讨论】:

以上是关于Bootstrap 4:制作响应式“pixelart”DIV的主要内容,如果未能解决你的问题,请参考以下文章

如何制作响应式 Bootstrap 3 分页

如何使用 Bootstrap 在 Yii 框架上响应式地制作普通的 div 块?

响应式网页设计Bootstrap开发速成 从入门到精通学习总结入门教程

响应式表高度 Bootstrap

Bootstrap 4 Carousel 响应式(图像和文本)

BootStrap 响应式布局技术教程简介