如何在整个显示宽度上将Squarecode中的三个代码块均匀地隔开?

时间:2019-04-19 15:39:21

标签: javascript css

使用Squarespace,我想了解如何使用CSS在整个屏幕宽度上分布三个代码块,并使CSS动态以适应不同的屏幕尺寸。

摘要:我在Squarespace的页面上有三个代码块。每个代码块的每个代码块的名称分别为“ codeblock1”,“ codeblock2”和“ codeblock3”(我还标识了诸如#block-be6b8b856f896c0d000之类的块ID)。每个代码块都会显示一张照片。我想利用整个屏幕宽度,并希望代码块平均分布在整个屏幕宽度上,并具有这种动态性以适应不同的屏幕尺寸。

我想了解如何使用CSS进行控制。例如,我已经能够使用代码将最左侧的代码块移至左侧(将左侧边距更改为-300对0):

#block-48747d3bb62b559a0000 {
    margin-left: -300px;
    margin-right: 0px;
    padding-left: 0px;
    padding-right: 0px;
    max-width: 100%;

但是,如果我改变浏览器的大小,这将不起作用,并且对于其他两个代码块也将不起作用。也许如果有人可以特别说明如何在SS中做到这一点(特别是说明代码应该去哪里),那将是很棒的。

**编辑:

感谢您的快速回复!使用@Chris的解决方案可以正常工作。我进行了以下修改以获得所需的布局:

.image {
  width: 33vw
  position: absolute;

}

#block-3e9110aac8284e2c1234 {
  left: -15vw;
  width: 130%;

}

#block-48747d3bb62b559a5678 {
  left: -5vw;
  width: 130%  

}

#block-be6b8b856f896c0d9102 {
  left: 5vw;
  width: 130%
}

**请注意:对于那些不知道的人,Squarespace的任何网页正文都有固定的边距。如果要使项目跨越整个计算机屏幕,则需要修改CSS以将项目移动到固定边距的左侧或右侧。使用@Chris解决方案,我可以使最左边的div移动到页边距左侧的唯一方法是使用负数vw(-15vw);这样做之后,我必须进行其他修改才能使div在屏幕上平均分配(中间div为“ -5vw”,最右边的div为“ 5vw”)。这可能也与我分配的每个块的大小有关-我最终将它们的大小增加了130%。

我注意到此解决方案引起了一个新问题:当此页面在iPhone上呈现时,图像太大(无法正确调整大小以适合iPhone屏幕),并且图像从左到右依次偏移(他们没有居中)。

2 个答案:

答案 0 :(得分:0)

首先,您可以仅使用“ left”来定位图像,而不必使用“ margin-left”。第二,您可以使用“ vw”而不是“%”来调整图像的大小,以使其相对于窗口的宽度始终具有相同的宽度。我试图在下面对此做一个粗略的版本

    .image {
  width: 33.33vw;
  position: absolute;
}
.image1 {
  left: 0;
}

.image2 {
  left: 33.33vw;
}

.image3 {
  left: 66.66vw;
}
<img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image image1">
<img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image image2">
<img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image image3">

答案 1 :(得分:0)

您可以轻松地实现,使用flexbox非常易于使用,现在supported很好。

.container {
    display: flex;
}

.imageCont {
    width: 33.33%;
}

.image {
    width: 100%;
}
<div class="container">
    <div class="imageCont">
        <img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image">
    </div>

    <div class="imageCont">
        <img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image">
    </div>

    <div class="imageCont">
        <img src="https://th.thgim.com/opinion/op-ed/article22695424.ece/alternates/FREE_300/9thscience" alt="image" class="image">
    </div>
</div>