html - 使用 CSS 进行响应式设计的布局样式

标签 html css

我试图按照此处的 Devbridge 淘汰示例实现客户管理器 Link .

我正在尝试使基于 div 的表格具有响应性,但我不确定除了将整个事物转换为表格或其他一些基于 Bootstrap 的结构之外是否有其他简单的方法。

我用 vanilla html 和 CSS 创建了一个 fiddle ,最终在浏览器上呈现。如果我调整窗口大小并将其变小,网格就会全部扭曲。是否有任何容器可以添加到其中以使其更漂亮和响应更快?

这是 HTML。我无论如何都不是设计师,所以任何快速解决方案也会有所帮助。

body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

a:focus {
  outline: none;
}

input[type="text"] {
  -webkit-appearance: none;
  border-radius: 0;
}

.adhoc-container {
  font-family: "Open Sans", sans-serif;
  font-size: 13px;
  line-height: 140%;
  overflow-y: auto;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background-image: url('images/AdHocMgr/modal-back.png');
}

.adhoc-container-header {
  position: absolute;
  background: #303030;
  width: 100%;
  height: 50px;
  line-height: 50px;
  padding: 0 60px;
  top: 0;
  left: 0;
  z-index: 6;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.adhoc-container-title {
  color: #0383df;
  font-size: 20px;
  font-weight: 700;
  width: 720px;
  margin-left: -340px;
  left: 50%;
  position: absolute;
}

.adhoc-container-content {
  display: table-cell;
  min-height: 100%;
  background-color: #fff;
  border-left: 1px solid #c6c6c6;
  width: 720px;
  vertical-align: top;
  margin-left: -360px;
  left: 50%;
  position: absolute;
}

.adhoc-container-content-padded {
  position: relative;
}

.adhoc-top-block-holder {
  padding: 20px 20px 20px 30px;
  height: 35px;
}

.adhoc-top-block-controls-holder {
  float: left;
  margin-top: -4px;
}

.adhoc-top-block-controls-holder a {
  display: inline-block;
  color: #0383df;
  font-size: 10px;
  vertical-align: middle;
  cursor: pointer;
}

.adhoc-top-block-controls-holder a:hover {
  text-decoration: underline;
}

.adhoc-add-new-folder {
  margin-left: 10px;
  padding-left: 29px;
  background: url('images/AdHocMgr/sprite-media-1.png') no-repeat -3px -56px;
  height: 30px;
}

.adhoc-upload-new-file {
  margin-left: 10px;
  padding-left: 29px;
  background: url('images/AdHocMgr/sprite-media-1.png') no-repeat 0 -96px;
  height: 30px;
}


/* Sort Arrows */

.adhoc-sort-arrow {
  display: inline-block;
  width: 100%;
  padding-left: 15px;
  background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAGN9z9QAAAAV0lEQVQI12N4+vTpNCD+zwAjQPgPiAaLIIu6whi3YTJALMSAxIHhaSBBfiSB2zADQdgJZgNMkBmI92IxBoZBcmww3SCsAsQfkBSA2OrIJqLjTCDOQRcHAEn2vvYOPcQQAAAAAElFTkSuQmCC') no-repeat left 4px;
  color: #000;
  text-align: left;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: medium;
}

.adhoc-sort-data {
  display: inline-block;
  width: 100%;
  padding-left: 20px;
  color: #000;
  text-align: left;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: medium;
}

.adhoc-sort {
  display: inline-block;
  width: 100%;
  padding-left: 15px;
  color: #000;
  text-align: left;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.adhoc-grid {
  display: inline-block;
  width: 100%;
  padding-left: 15px;
  color: #000;
  text-align: left;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/*default sorting block*/

.adhoc-list .adhoc-media-sorting-block .adhoc-media-col-1 {
  width: 40px;
}

.adhoc-media-sorting-block {
  height: 35px;
  background-color: #f5f5f5;
  border-top: 1px solid #c6c6c6;
  border-bottom: 1px solid #c6c6c6;
}

.adhoc-media-sorting-block>div {
  float: left;
  height: 100%;
}

.adhoc-media-sorting-block .adhoc-media-col-2 {
  width: 170px;
  border-left: 1px solid #c6c6c6;
  border-right: 1px solid #c6c6c6;
}

.adhoc-media-sorting-block .adhoc-media-col-3 {
  width: 180px;
  border-right: 1px solid #c6c6c6;
}

.adhoc-media-sorting-block .adhoc-sort-arrow {
  margin: 8px 0 0 20px;
}

.adhoc-media-sorting-block .adhoc-sort-data {
  margin: 8px 0 0 20px;
}

.adhoc-media-col-2:hover {
  background-color: #e5e5e5;
  cursor: pointer;
}

.adhoc-media-col-3:hover {
  background-color: #e5e5e5;
  cursor: pointer;
}


/*media manger files*/

.adhoc-list .adhoc-grid-input {
  display: none;
  position: absolute;
  left: 135px;
  top: 50%;
  height: 30px;
  width: 380px;
  line-height: 18px;
  padding: 6px;
  margin: -15px 0 0;
  border: 1px solid #1894e4;
  box-shadow: 0 0 3px 0 rgba(24, 145, 230, 0.35);
  font-family: "Open Sans", sans-serif;
  font-size: 12px;
  color: #000;
  vertical-align: middle;
  background: #fff;
  border-radius: 0;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

input.adhoc-grid-input:focus {
  outline: none;
}

.adhoc-add-folder:hover .adhoc-system-addfolder {
  background-position: 0 -297px;
}

.adhoc-system-folder {
  display: inline-block;
  width: 56px;
  height: 42px;
  background: url('images/AdHocMgr/sprite-media-1.png') no-repeat 0 -176px;
  vertical-align: middle;
}

.adhoc-system-file {
  display: inline-block;
  width: 56px;
  height: 43px;
  background: url('images/AdHocMgr/file.png') no-repeat;
  vertical-align: middle;
}

.adhoc-media-name {
  line-height: 16px;
  font-size: 11px;
}

.adhoc-media-addFolder {
  line-height: 16px;
  font-size: 11px;
  color: #0383df;
}


/*folders in list*/

.adhoc-list .adhoc-folder-box {
  position: relative;
  height: 62px;
  padding: 0 20px 0 40px;
  border-bottom: 1px solid #e3e3e3;
}

.adhoc-list .adhoc-folder-box:hover {
  background-color: #f5f5f5;
  cursor: pointer;
}

.adhoc-list .adhoc-folder-box:hover div.adhoc-system-folder {
  background-position: 0 -235px;
}

.adhoc-list .adhoc-folder-box .adhoc-icn-edit {
  position: absolute;
  left: 16px;
  top: 50%;
  margin-top: -10px;
}

.adhoc-list .adhoc-folder-box:hover a.adhoc-icn-edit {
  background-position: center -869px;
}

.adhoc-list .adhoc-folder-box:hover a.adhoc-icn-edit:active {
  background-position: center -903px;
}

.adhoc-list .adhoc-folder-box .adhoc-media-inner-controls {
  display: none;
  position: absolute;
  top: 50%;
  right: 20px;
  width: 130px;
  margin-top: -17px;
}

.adhoc-list .adhoc-folder-box .adhoc-media-items-block {
  display: inline-block;
  min-width: 480px;
  padding: 10px 15px;
  border-left: 1px solid #e3e3e3;
  vertical-align: middle;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.adhoc-list .adhoc-folder-box .adhoc-media-name {
  display: inline-block;
  max-width: 390px;
  padding-left: 20px;
  vertical-align: middle;
  font-size: 14px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.adhoc-list .adhoc-folder-box .adhoc-media-edit-controls {
  float: right;
  margin-top: 22px;
}


/*folders in list active box*/

.adhoc-list .adhoc-folder-box-active {
  background-color: #effcfe;
}

.adhoc-list .adhoc-folder-box-active:hover {
  background-color: #effcfe;
}

.adhoc-list .adhoc-folder-box-active div.adhoc-system-folder {
  background-position: 0 -235px;
}

.adhoc-list .adhoc-folder-box-active div.adhoc-media-inner-controls {
  display: block;
}

.adhoc-list .adhoc-folder-box-active div.adhoc-media-name {
  display: none;
}

.adhoc-list .adhoc-folder-box-active input.adhoc-grid-input {
  display: block;
}

.adhoc-list .adhoc-folder-box-active .adhoc-icn-edit {
  background-position: center -869px;
}

.adhoc-list .adhoc-folder-box-active a.adhoc-icn-delete {
  display: none;
}


/*add new folder*/

.adhoc-system-addfolder {
  display: inline-block;
  width: 56px;
  height: 42px;
  background: url('images/AdHocMgr/sprite-media-1.png') no-repeat 0 -126px;
  vertical-align: middle;
}

.adhoc-list .adhoc-add-folder {
  position: relative;
  height: 62px;
  padding: 0 20px 0 40px;
  cursor: pointer;
}

.adhoc-list .adhoc-add-folder .adhoc-media-items-block {
  border-left: 0;
}

.adhoc-list .adhoc-add-folder .adhoc-media-items-block {
  display: inline-block;
  padding: 10px 15px;
  vertical-align: middle;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.adhoc-list .adhoc-add-folder .adhoc-media-name {
  display: inline-block;
  padding-left: 20px;
  vertical-align: middle;
  font-size: 14px;
}


/*files in list*/

.adhoc-list .adhoc-file-box {
  position: relative;
  height: 62px;
  padding: 0 20px 0 40px;
  border-bottom: 1px solid #e3e3e3;
}

.adhoc-list .adhoc-file-box:hover {
  background-color: #f5f5f5;
  cursor: pointer;
}

.adhoc-list .adhoc-file-box .adhoc-icn-edit {
  position: absolute;
  left: 16px;
  top: 50%;
  margin-top: -10px;
}

.adhoc-list .adhoc-file-box:hover a.adhoc-icn-edit {
  background-position: center -869px;
}

.adhoc-list .adhoc-file-box:hover a.adhoc-icn-edit:active {
  background-position: center -903px;
}

.adhoc-list .adhoc-file-box .adhoc-media-inner-controls {
  display: none;
  position: absolute;
  top: 50%;
  right: 20px;
  width: 130px;
  margin-top: -17px;
}

.adhoc-list .adhoc-file-box .adhoc-media-items-block {
  display: inline-block;
  min-width: 480px;
  padding: 10px 15px;
  border-left: 1px solid #e3e3e3;
  vertical-align: middle;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.adhoc-list .adhoc-file-box .adhoc-media-name {
  display: inline-block;
  max-width: 390px;
  padding-left: 20px;
  vertical-align: middle;
  font-size: 14px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.adhoc-list .adhoc-file-box .adhoc-media-edit-controls {
  float: right;
  margin-top: 22px;
}


/*files in list active box*/

.adhoc-list .adhoc-file-box-active {
  background-color: #effcfe;
}

.adhoc-folder-box-applied {
  background-color: lightgray;
}

.adhoc-list .adhoc-file-box-active:hover {
  background-color: #effcfe;
}

.adhoc-list .adhoc-file-box-active div.adhoc-media-inner-controls {
  display: block;
}

.adhoc-list .adhoc-file-box-active div.adhoc-media-name {
  display: none;
}

.adhoc-list .adhoc-file-box-active input.adhoc-grid-input {
  display: block;
}

.adhoc-list .adhoc-file-box-active .adhoc-icn-edit {
  background-position: center -869px;
}

.adhoc-list .adhoc-file-box-active a.adhoc-icn-delete {
  display: none;
}

.adhoc-list .adhoc-file-box-active .adhoc-edit-buttons {
  display: none;
}


/*additional file types*/

.adhoc-uknown-icn {
  background-position: 0 0;
}

.adhoc-media-click-active .adhoc-uknown-icn {
  background-position: -84px 0;
}

.adhoc-file-box:hover .adhoc-uknown-icn {
  background-position: -84px 0;
}

.adhoc-file-box-active .adhoc-uknown-icn {
  background-position: -84px 0;
}

.adhoc-pdf-icn {
  background-position: 0 -112px;
}

.adhoc-media-click-active .adhoc-pdf-icn {
  background-position: -84px -112px;
}

.adhoc-file-box:hover .adhoc-pdf-icn {
  background-position: -84px -112px;
}

.adhoc-file-box-active .adhoc-pdf-icn {
  background-position: -84px -112px;
}

.adhoc-word-icn {
  background-position: 0 -167px;
}

.adhoc-media-click-active .adhoc-word-icn {
  background-position: -84px -167px;
}

.adhoc-file-box:hover .adhoc-word-icn {
  background-position: -84px -167px;
}

.adhoc-file-box-active .adhoc-word-icn {
  background-position: -84px -167px;
}

.adhoc-mp3-icn {
  background-position: 0 -279px;
}

.adhoc-media-click-active .adhoc-mp3-icn {
  background-position: -84px -279px;
}

.adhoc-file-box:hover .adhoc-mp3-icn {
  background-position: -84px -279px;
}

.adhoc-file-box-active .adhoc-mp3-icn {
  background-position: -84px -279px;
}

.adhoc-mp4-icn {
  background-position: 0 -334px;
}

.adhoc-media-click-active .adhoc-mp4-icn {
  background-position: -84px -334px;
}

.adhoc-file-box:hover .adhoc-mp4-icn {
  background-position: -84px -334px;
}

.adhoc-file-box-active .adhoc-mp4-icn {
  background-position: -84px -334px;
}

.adhoc-ppt-icn {
  background-position: 0 -389px;
}

.adhoc-media-click-active .adhoc-ppt-icn {
  background-position: -84px -389px;
}

.adhoc-file-box:hover .adhoc-ppt-icn {
  background-position: -84px -389px;
}

.adhoc-file-box-active .adhoc-ppt-icn {
  background-position: -84px -389px;
}

.adhoc-xls-icn {
  background-position: 0 -446px;
}

.adhoc-media-click-active .adhoc-xls-icn {
  background-position: -84px -446px;
}

.adhoc-file-box:hover .adhoc-xls-icn {
  background-position: -84px -446px;
}

.adhoc-file-box-active .adhoc-xls-icn {
  background-position: -84px -446px;
}

.adhoc-rar-icn {
  background-position: 0 -501px;
}

.adhoc-media-click-active .adhoc-rar-icn {
  background-position: -84px -501px;
}

.adhoc-file-box:hover .adhoc-rar-icn {
  background-position: -84px -501px;
}

.adhoc-file-box-active .adhoc-rar-icn {
  background-position: -84px -501px;
}

.adhoc-wav-icn {
  background-position: 0 -556px;
}

.adhoc-media-click-active .adhoc-wav-icn {
  background-position: -84px -556px;
}

.adhoc-file-box:hover .adhoc-wav-icn {
  background-position: -84px -556px;
}

.adhoc-file-box-active .adhoc-wav-icn {
  background-position: -84px -556px;
}
<div class="adhoc-list">
  <div class="adhoc-media-sorting-block">

    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">File Type</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-arrow" data-bind="click: sortItems.bind($root, 'Title'), css: { 'adhoc-sort-arrow-top': isSortedAscending('Title'), 'adhoc-sort-arrow-bottom': isSortedDescending('Title') }">File Name</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">Username</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">Creation Date</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">Last Modified</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">Variant Type</a>
    </div>
    <div class="adhoc-media-col-2">
      <a class="adhoc-sort-data">Is Public</a>
    </div>
  </div>



  <div>
    <div class="adhoc-folder-box">
      <div class="adhoc-media-items-block">
        <div class="adhoc-system-file"></div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center;">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center;">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">
          <input type="checkbox" />
        </div>
      </div>
      <div class="adhoc-media-edit-controls">
        <input type="text" class="adhoc-grid-input" />
        <div class="adhoc-media-inner-controls">
          <div class="adhoc-btn-small">Save</div>
          <div class="adhoc-btn-links-small">Cancel</div>
        </div>
        <a class="adhoc-icn-edit">Edit</a>
        <input class="adhoc-edit-buttons" type="button" value="Apply" />
        <input class="adhoc-edit-buttons" type="button" value="Change Output Order" /> &nbsp;
        <a class="adhoc-icn-delete">Delete</a>
      </div>
    </div>
  </div>
  <div>
    <div class="adhoc-file-box">
      <div class="adhoc-media-items-block">
        <div class="adhoc-system-folder"></div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center;">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center;">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">demo data</div>
        <div class="adhoc-media-name" style="width: 160px; text-align: center">
          <input type="checkbox" />
        </div>
      </div>
      <div class="adhoc-media-edit-controls">
        <input type="text" class="adhoc-grid-input" />
        <div class="adhoc-media-inner-controls">
          <div class="adhoc-btn-small">Save</div>
          <div class="adhoc-btn-links-small">Cancel</div>
        </div>
        <a class="adhoc-icn-edit">Edit</a>
        <input class="adhoc-edit-buttons" type="button" value="Apply" />
        <input class="adhoc-edit-buttons" type="button" value="Change Output Order" /> &nbsp;
        <a class="adhoc-icn-delete">Delete</a>
      </div>
    </div>
  </div>
</div>

Fiddle Link

我并不是要让别人看看整个事情并为我解决,我只是在寻找建议,让整个事情在没有太多变化的情况下轻松响应。

谢谢

最佳答案

不确定这个答案对你来说是否足够简单,但在 css 中你可以使用 @media 检查用户的设备尺寸并相应地使用特定的 css 规则,如下所示:

@media (max-width: 767px) {
    /* On small screens, leave a space at the top of the page to put the menu in there. */
    body {
        padding-top: 50px;
    }
}

@media (min-width: 768px) {
    /* On large screens, convert the nav menu to a vertical sidebar */
    .navbar {
        height: 100%;
        width: calc(25% - 20px);
    }
}

这只是您如何使用它的一个想法。希望对您有所帮助。

关于html - 使用 CSS 进行响应式设计的布局样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51640862/

相关文章:

javascript - 使用 jQuery 创建新元素的正确方法是什么?

javascript - 伪造预加载器屏幕

css - Webpack 不遵守导入顺序

java - JEdi​​torPane 内图像上的文本

javascript - 识别函数 javascript 的元素

html - 使用 Bootstrap 并使用 Carousel

html - 如何在CSS中选择最后一个类或最后一个类型

javascript - 您希望如何处理 &lt;script&gt; 元素?

javascript - 如何在点击时停止旋转画廊

javascript - 在执行 ng-repeat 并执行不会反射(reflect)在 html 中的操作时,将范围从 html 绑定(bind)到指令