如何根据屏幕分辨率调整div的大小

时间:2016-08-04 13:52:22

标签: javascript jquery html css

我正在创建一个有趣的菜单概念的目标网页。它采用定制六边形制成。我想根据屏幕分辨率制作这些hexacgons来填充所有屏幕。基本上我想让它们适应屏幕而不需要滚动。 我的网站:http://new.glstudios.lv/

<div class='grid'>
<div onclick="location.href='';" id="smallbox" ; class='grid--item'>
  <div class='img' style='background-image: url();'></div>
    <div class='container'>
      <h2>Snowy Hills</h2>
      <div class='desc'>Photo by Ales Krivec</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url();'></div>
    <div class='container'>
      <h2>Bear</h2>
      <div class='desc'>Photo by Thomas Lefebvre</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url();'></div>
    <div class='container'>
      <h2>Owl</h2>
      <div class='desc'>Photo by photostockeditor</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url();'></div>
    <div class='container'>
      <h2>Horse</h2>
      <div class='desc'>Photo by Annie Spratt</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url();'></div>
    <div class='container'>
      <h2>Ice & Penguin</h2>
      <div class='desc'>Photo by Teodor Bjerrang</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url( );'></div>
    <div class='container'>
      <h2>Pile of Logs</h2>
      <div class='desc'>Photo by Ales Krivec</div>
    </div>
  </div>
  <div class='grid--item'>
    <div class='img' style='background-image: url( );'></div>
    <div class='container'>
      <h2>Winter Tree</h2>
      <div class='desc'>Photo by Mikael Kristenson</div>
    </div>
  </div>
</div>

我的CSS。

#smallbox {
    cursor: pointer;
}
.x-main.full {
    float: none;
    display: block;
    width: auto;
    background:black;
}
@import url(https://fonts.googleapis.com/css?family=Arapey:400italic);
body {
  background: white;
  -webkit-font-smoothing: antialiased;
  min-width: 1200px;
}

.grid {
  padding: 60px;
  margin: 0 auto;
  max-width: 1200px;
}

.grid--item {
  position: relative;
  margin-top: -90px;
  margin-right: 5px;
  margin-left: 5px;
  width: calc(33.33% - 10px);
  float: left;
  transition: all 0.5s;
  overflow: hidden;
  -webkit-clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  -webkit-shape-outside: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.grid--item:before {
  display: block;
  padding-top: 112.5%;
  content: '';
}
.grid--item:nth-child(1), .grid--item:nth-child(2) {
  margin-top: 0;
}
.grid--item:nth-child(7n - 1), .grid--item:nth-child(1) {
  margin-left: 185px;
}

.img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-position: center center;
  background-size: cover;
  overflow: hidden;
  -webkit-clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.img:before, .img:after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: '';
  opacity: 0;
  transition: opacity 0.5s;
}
.img:before {
  background: rgba(128, 0, 128, 0.25);
}
.img:after {
  background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.5), transparent);
}

.container {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  opacity: 0;
  text-align: center;
  color: white;
  will-change: transform;
  backface-visibility: hidden;
  transform: translate(-50%, -50%) scale(0.9);
  transition: all 0.5s;
  -webkit-shape-outside: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  shape-outside: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}

h1,
h2 {
  font-family: 'Arapey';
  font-style: italic;
  font-weight: 400;
}

h1 {
  margin-top: 90px;
  text-align: center;
  font-size: 56px;
  color: white;
}

h2 {
  font-size: 32px;
  color:white;
}
h2:before, h2:after {
  display: inline-block;
  margin: 0 0.5em;
  width: 0.75em;
  height: 0.03em;
  background: turquoise;
  content: '';
  vertical-align: middle;
  transition: all 0.3s;
}

.desc {
  margin: 1em 0 0;
  font-family: 'ATC Overlook';
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 11px;
  line-height: 1.5;
  color: turquoise;
}

.grid--item:hover .img:before,
.grid--item:hover .img:after,
.grid--item:hover .container {
  opacity: 1;
}
.grid--item:hover .container {
  transform: translate(-50%, -50%) scale(1);
}

3 个答案:

答案 0 :(得分:1)

假设你的HTML是这样的:

$(window).resize(function() {
    $('#test-div').css('width', $(window).width());
    $('#test-div').css('height', $(window).height());
});

你可以这样做:

{
   "success":true,
   "errors":[

   ],
   "objects":[
      {
         "cod":"8211300",
         "descricao":"Serviços advocatícios"
      },
      {
         "cod":"7111100",
         "descricao":"Serviços de arquitetura"
      },
      {
         "cod":"6204000",
         "descricao":"Consultoria em tecnologia da informação"
      },
      {
         "cod":"6622300",
         "descricao":"Corretores e agentes de seguros, de planos de previdência complementar e de saúde"
      },
      {
         "cod":"8630504",
         "descricao":"Atividade odontológica com recursos para realização de procedimentos cirúrgicos"
      },
      {
         "cod":"7410202",
         "descricao":"Design de interiores"
      },
      {
         "cod":"6202300",
         "descricao":"Desenvolvimento e licenciamento de programas de computador customizáveis"
      },
      {
         "cod":"7112000",
         "descricao":"Serviços de engenharia"
      },
      {
         "cod":"8599699",
         "descricao":"Outras atividades de ensino não especificadas anteriormente"
      },
      {
         "cod":"6391700",
         "descricao":"Agências de notícias"
      },
      {
         "cod":"7311400",
         "descricao":"Agências de publicidade"
      },
      {
         "cod":"8211300",
         "descricao":"Serviços combinados de escritório e apoio administrativo"
      },
      {
         "cod":"9511800 ",
         "descricao":"Reparação e manutenção de computadores e de equipamentos periféricos"
      },
      {
         "cod":"8630503",
         "descricao":"Atividade médica ambulatorial restrita a consultas"
      },
      {
         "cod":"1",
         "descricao":"Outras atividades"
      }
   ]
}

但如果没有发布实际的HTML / Javascript代码,很难说清楚。

答案 1 :(得分:0)

您还可以尝试在分隔符标记后添加 style =“overflow:auto”

答案 2 :(得分:0)

我想你可能想用javascript或jquery来改变调整大小的css。 有点像:

$(window).resize(function() {
    $('.container').css('transform','translate(-50%, -50%) scale(dynamicvaluehere);');
});

您需要根据窗口高度和窗口宽度计算动态值变量。