如何仅使用CSS(无JavaScript)设置动态响应div?

维查德

基本上,我想要的是我的主div根据类别div的高度或内容(以较高者为准)进行尽可能多的扩展;和我的产品图片。这是不祥的地方

我的问题如下:

  • 内容div和类别div都是主div的子级,但是产品图片浮出主div。最终在缩放时,它也会向右浮动。

  • 因此,如果我将#main宽度设置为百分比,则缩放会变得非常愚蠢,(缩小不会使图片变小,div或徽标也不会使类别中的按钮变小。但是,如果我将其设置为常数,那很好,但是又会如何响应呢?

  • 为什么类别的边界位置不正确?(垂直)

  • 在响应式移动视图中,当我禁用缩放功能时,图片再次位于所有内容的顶部,并且具有滚动条,它应显示为全屏。我在这里必不可少的东西。同样,页脚位于所有内容的中间,并且在页眉和类别之间有一个额外的黑色部分,但是这些元素中的任何一个都没有空白或填充。在这里看到

提前致谢!

ps .:我已经尝试了很多事情,包括改变高度,宽度,玩边距,溢出,但是找不到如何正确执行操作的线索。pps:我在这里插入了代码,因此您不必在上述站点上打开源代码,即可更快地进行检查。

body {
  background-color: #161718;
  background-image: url('../pictures/mdbg.png');
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: 100% auto;
  margin: 0px;
  padding: 0px;
}
header {
  width: 100%;
  height: 60px;
  background: linear-gradient(to bottom, rgba(230, 16, 16, 1) 1%, rgba(136, 7, 8, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
}
#main {
  margin: 0 auto;
  width: 60%;
  background-color: #1d1e20;
  border-right: 3px solid #880708;
  border-left: 3px solid #880708;
  border-bottom: 3px solid #880708;
  height: 100%;
  min-height: 200px;
  position: relative;
}
#logo {
  margin: 20%;
  white-space: nowrap;
  overflow: hidden;
  width: 40%;
}
#categories {
  width: 15%;
  border-right: 3px solid #880708;
  height: 100%;
  padding: 0;
  float: left;
  font: 12px Verdana;
  list-style-type: none;
  text-align: center;
  white-space: nowrap;
}
ul#categories a {
  background: linear-gradient(to bottom, rgba(193, 32, 38, 1) 1%, rgba(104, 12, 13, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
  text-shadow: 1px 1px 0 #000000;
  border-radius: 2px;
  color: white;
  display: inline-block;
  font-size: 1.3em;
  margin: 4px;
  padding: 2px 2px;
  text-decoration: none;
  width: 80%;
}
#content {
  float: right;
  width: 85%;
  height: 100%;
  position: absolute;
  margin: 0 auto;
}
#content img {
  width: 26%;
  position: relative;
  top: 5%;
  left: 25%;
}
footer {
  width: 100%;
  height: 20px;
  background-color: black;
  color: white;
  text-align: center;
  border-top: 3px solid #880708;
  position: absolute;
  bottom: 0;
}
/* Laptop/Tablet (1366px) */

@media only screen and (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
  header {
    width: 100%;
  }
  #main {
    width: 1000px;
  }
  footer {
    width: 100%;
  }
  #categories {
    width: 15%;
  }
  #content {
    width: 85%;
  }
}
/* Laptop/Tablet (1024px) */

@media only screen and (min-width: 481px) and (max-width: 1024px) and (orientation: landscape) {
  header {
    width: 100%;
  }
  #main {
    width: 100%;
    border: none;
  }
  footer {
    width: 100%;
  }
  #categories {
    width: 20%;
  }
  #content {
    width: 80%;
    top: 5%;
    left: 38%;
  }
}
/* Tablet Portrait (768px) */

@media only screen and (min-width: 321px) and (max-width: 1024px) and (orientation: portrait) {
  header {
    width: 100%;
    height: 10%;
    padding: 0px;
  }
  body {
    background-image: none;
  }
  #main {
    border: 0px;
    width: 100%;
    min-width: 200px;
  }
  footer {
    width: 100%;
    position: absolute;
  }
  #logo {
    display: none;
  }
  #categories {
    width: 100%;
    border: 0px;
  }
  ul#categories a {
    width: 100%;
    font-size: 2.6em;
    margin: 0 auto;
    padding-top: 10px;
    padding-bottom: 10px;
    display: inline-block;
  }
  #content {
    width: 100%;
    margin: 0 auto;
    left: 15%;
    overflow: scroll;
  }
  #content img {
    width: 80%;
    position: relative;
    top: 5%;
    left: 0%;
  }
}
/* Phone Landscape (480px) */

@media only screen and (min-width: 321px) and (max-width: 480px) and (orientation: landscape) {
  .box {
    float: left;
  }
  header {
    width: 100%;
    height: 40px;
  }
  main {
    width: 100%;
  }
  footer {
    width: 100%;
  }
  #categories {
    width: 100%;
  }
  #content {
    width: 100%;
  }
}
/* Phone Portrait (320px) */

@media only screen and (max-width: 320px) {
  .box {
    float: left;
  }
  header {
    width: 100%;
    height: 40px;
  }
  main {
    width: 100%;
  }
  footer {
    width: 100%;
  }
  #categories {
    width: 100%;
  }
  #content {
    width: 100%;
  }
}
<html>

<head>
  <link rel="stylesheet" type="text/css" href="www.verychard.com/responsive/styles/style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
  <!--320 mobile devices cant zoom-->
  <title>Webshop</title>
</head>

<body>

  <header></header>

  <div id="main">


    <ul id="categories">
      <img id="logo" src="http://www.verychard.com/responsive/kecske.png" />
      <li><a>Motherboard</a>
      </li>
      <li><a>Processor</a>
      </li>
      <li><a>Memory</a>
      </li>
      <li><a>FSP</a>
      </li>
      <li><a>Whatever</a>
      </li>
      <li><a>Monitor</a>
      </li>
      <li><a>Motherboard</a>
      </li>
      <li><a>Processor</a>
      </li>
      <li><a>Memory</a>
      </li>
      <li><a>FSP</a>
      </li>
      <li><a>Whatever</a>
      </li>
      <li><a>Monitor</a>
      </li>
    </ul>

    <div id="content">
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
      <img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
    </div>


    <footer>All rights reserved Kecske PC 2015</footer>
  </div>

</body>

</html>

戴夫·高顿(Dave Goten)

添加了公认的clearfix版本,并删除了很多位置。最重要的是,您的边框宽度为15%+ 85%= 100%+ 3px,因此它迫使元素向下移动到下一行,这就是为什么我怀疑您需要绝对定位以使其保持在所需位置的原因,因此现在分别是15%和75%。这不是完美的,但我希望这是一个开始。

body {
  background-color:#161718;
  background-image:url('../pictures/mdbg.png');
  background-position:center; 
  background-repeat:no-repeat;
  background-attachment: fixed;
  background-size: cover;
  margin: 0px;
  padding: 0px;
  height: 100%;
}

header{
  width:100%;
  height: 60px;
  background: linear-gradient(to bottom, rgba(230, 16, 16, 1) 1%, rgba(136, 7, 8, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
}

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

#main{
  margin: 0 auto;
  width: 60%;
  background-color: #1d1e20;
  border: 3px solid #880708;
  border-top: 0px none transparent;
  min-height: 200px;
  position:relative;
}

#logo{
  margin: 20%;
  white-space:nowrap;
  overflow:hidden;
  width: 40%;
}

#categories{
  width: 15%;
  border-right: 3px solid #880708;
  margin: 0;
  height: 100%;
  padding: 0;
  float:left;
  font: 12px Verdana;
  list-style-type: none;
  text-align:center;
  white-space:nowrap;
}


ul#categories a {
  background: linear-gradient(to bottom, rgba(193, 32, 38, 1) 1%, rgba(104, 12, 13, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
  text-shadow: 1px 1px 0 #000000;
  border-radius: 2px;
  color: white;
  display: inline-block;
  font-size: 1.3em;
  margin: 4px;
  padding: 2px 2px;
  text-decoration: none;
  width: 80%;   
}

#content{
  float:right;
  width:75%; /* 100% - 15% - 3px > 85% so mind the gap */
  height: 100%;
  margin: 0;
  padding: 0;
}

#content img{
  width: 26%;
}

footer {
  width: 100%; 
  height: 20px;
  background-color: black;
  color:white;
  text-align:center;
  border-top: 3px solid #880708;
  bottom: 0;
}



/* Laptop/Tablet (1366px) */
@media only screen and (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
  header {  }
  #main { width: 1000px; }
  footer {  }
  #categories {  }
  #content {  }
}

/* Laptop/Tablet (1024px) */
@media only screen and (min-width: 481px) and (max-width: 1024px) and (orientation: landscape) {
  header { }
  #main { width: 100%; border:none;}
  footer {  }
  #categories { width: 20%; }
  #content { width: 70%; }
}

/* Tablet Portrait (768px) */
@media only screen and (min-width: 321px) and (max-width: 1024px) and (orientation: portrait) {

  header { height: 10%; padding: 0px;}
  body {background-image:none;}
  #main {  border:0px; width: 100%; min-width: 200px;}
  footer { }
  #logo {display:none;}
  #categories { width: 100%; border:0px;}
  ul#categories a { width:100%; font-size:2.6em; margin: 0 auto; padding-top:10px; padding-bottom: 10px; display: inline-block;}
  #content {width: 100%; margin: 0 auto; left: 15%; overflow:scroll; padding-top: 15px;}
  #content img{width: 80%;}

}

/* Phone Landscape (480px) */
@media only screen and (min-width: 321px) and (max-width: 480px) and (orientation: landscape) {
  .box { float: left; }
  header {height: 40px;}
  main { width: 100%; }
  footer { }
  #categories { width: 100%; }
  #content { width: 100%; }
}

/* Phone Portrait (320px) */
@media only screen and (max-width: 320px) {
  .box { float: left; }
  header { height: 40px;}
  main { width: 100%; }
  footer {  }
  #categories { width: 100%;}
  #content { width: 100%; }
}

对html进行一些小的更改

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="styles/style.css">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <!--320 mobile devices cant zoom-->
    <title>Webshop</title>
    <style type="text/css"></style>
  </head>

  <body>

    <header></header>

    <div id="main" class="clearfix">


      <ul id="categories">
        <img id="logo" src="kecske.png">
        <li><a>Motherboard</a></li>
        <li><a>Processor</a></li>
        <li><a>Memory</a></li>
        <li><a>FSP</a></li>
        <li><a>Whatever</a></li>
        <li><a>Monitor</a></li>
        <li><a>Motherboard</a></li>
        <li><a>Processor</a></li>
        <li><a>Memory</a></li>
        <li><a>FSP</a></li>
        <li><a>Whatever</a></li>
        <li><a>Monitor</a></li>
      </ul>

      <div id="content">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">
        <img src="termek.png" alt="picture">

      </div>


      <div class="clearfix"></div>
      <footer>All rights reserved Kecske PC 2015</footer>
    </div>


    <style>.tb_button {padding:1px;cursor:pointer;border-right: 1px solid #8b8b8b;border-left: 1px solid #FFF;border-bottom: 1px solid #fff;}.tb_button.hover {borer:2px outset #def; background-color: #f8f8f8 !important;}.ws_toolbar {z-index:100000} .ws_toolbar .ws_tb_btn {cursor:pointer;border:1px solid #555;padding:3px}   .tb_highlight{background-color:yellow} .tb_hide {visibility:hidden} .ws_toolbar img {padding:2px;margin:0px}</style>
  </body>
</html>

编辑:修复了某些格式(不要复制表单控制台,这对您的OCD不利)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据单击的按钮更改div的颜色?(仅javascript / css / html无库)

如何仅使用CSS设置<select>下拉列表的样式?

如何使用JavaScript设置动态CSS值

如何使用无服务器和DynamoDBContext在dynamodb中动态设置表名?

使用CSS的动态响应表单

使用JavaScript或Jquery将焦点设置为动态创建的DIV

如何使CSS网格无响应?

如何仅使用css根据图像宽度为父级设置动态宽度

如何仅使用Javascript设置特定div块的打开和关闭?

如何使用内嵌CSS使div响应

如何让我的圈子仅使用CSS进行响应?

单击不同的div时如何仅使用CSS和JavaScript淡入div

如何仅使用CSS设置变形框的样式

如何仅使用html / css / javascript(无jquery等)重置搜索框中的列表?

响应式CSS-如何使用填充/边距将div与父级宽度“动态”对齐?

在angularjs中编写动画指令(仅Javascript使用,无CSS动画!)指令

如何仅使用.css为子类设置样式?

如何仅使用上方的div和下方的div动态更新div的最大高度?

如何使用动态标题div设置内容区域div的高度

如何仅使用CSS类运行javascript?

如何仅使用JavaScript设置字体系列-不能访问jquery,html或css,只能访问js

如何仅使用CSS设置“选择文件”按钮的样式

如何使用CSS在div上设置div?

仅使用 CSS 在动态大小的元素上设置宽度或高度的方法

仅使用 CSS 的父 div 的动态大小动画

仅使用css创建高度等于整个页面长度的元素(无javascript)

CSS - 图像无响应

如何将 textarea 背景设置为透明以仅使用 javascript 或 css 在放置在其后面/上方的 div 上显示其内容

如何仅使用 CSS 设置 shimymanager 登录屏幕的样式?