CSS -为什么在这个网格中有一个很大的空间?

92vpleto  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(108)

本来左右看起来应该是一样的,但是第二张图片中的titulo-valores(标题)和texto-valores(文字)之间由于某种原因出现了很大的空间,很可能和图片有关系,如何让文字靠近标题,并且在图片的左侧呢?

超文本:

<div class="setor-valores">
        <div class="valores-esq">
            <img src="../assets/images/cp/sobre-cid-1.jpg" alt="sobre-cidade1" class="imagem-esq">
            <br><br>
            <p class="titulo-valores">Liberdade</p>
            <p class="texto-valores">O que define a nossa ética é: nenhum indivíduo deve ter poder para tomar decisões sobre a vida de outro. Assim, liberdade de escolha de cada indivíduo sobre o que irá afetar sua própria vida é fundamental. Por isso governança privada é tão importante: permite que indivíduos tenham escolha e poder no convívio em sociedade. Deste modo, todos têm liberdade na busca de sua própria felicidade, à sua maneira.</p>
        </div>

        <div class="valores-dir">
            <img src="../assets/images/cp/sobre-cid-2.jpg" alt="sobre-cidade2" class="imagem-dir">
            <br><br>
            <p class="titulo-valores">Liberdade</p>
            <p class="texto-valores">O que define a nossa ética é: nenhum indivíduo deve ter poder para tomar decisões sobre a vida de outro. Assim, liberdade de escolha de cada indivíduo sobre o que irá afetar sua própria vida é fundamental. Por isso governança privada é tão importante: permite que indivíduos tenham escolha e poder no convívio em sociedade. Deste modo, todos têm liberdade na busca de sua própria felicidade, à sua maneira.</p>
        </div>

        <div class="valores-esq">
            <img src="../assets/images/cp/sobre-cid-3.jpg" alt="sobre-cidade3" class="imagem-esq">
            <p class="titulo-valores">Liberdade</p>
            <p class="texto-valores">O que define a nossa ética é: nenhum indivíduo deve ter poder para tomar decisões sobre a vida de outro. Assim, liberdade de escolha de cada indivíduo sobre o que irá afetar sua própria vida é fundamental. Por isso governança privada é tão importante: permite que indivíduos tenham escolha e poder no convívio em sociedade. Deste modo, todos têm liberdade na busca de sua própria felicidade, à sua maneira.</p>
        </div>
    </div>

CSS:

.valores-esq {
    display: grid;
    gap: calc(10px + 3vw);
    grid-template-areas: 
    'imagem imagem titulo titulo'
    'imagem imagem texto texto';
    margin-right: 10vw;
    row-gap: 1px;
    text-align: left;
}

.valores-dir { /* PROBLEM HERE */
    display: grid;
    grid-template-areas: 
    'titulo titulo imagem imagem'
    'texto texto imagem imagem';
    text-align: left;
    margin-left: 5vw;
}

.imagem-esq {
    grid-area: imagem;
    height: calc(30px + 18vw);
    width: calc(85px + 45vw);
    object-fit: cover; 
    object-position: 100% 0;
    border-radius: 0px 30px 30px 0px;
}

.imagem-dir { /* PROBLEM HERE */
    height: calc(30px + 18vw);
    width: calc(85px + 45vw);
    object-fit: cover; 
    object-position: 0 100%;
    border-radius: 30px 0px 0px 30px;
}

.titulo-valores {
    grid-area: titulo;
    font-family: Martel;
    font-size: 20px;
}

.texto-valores {
    grid-area: texto;
    font-family: Martel;
    font-size: 15px;
}

我试过将文本变小,但它仍然停留在原来的位置,所以这不是问题所在。

pes8fvy9

pes8fvy91#

我认为惟一缺少的是imagem-dir类的网格区域定义:

.imagem-dir {
  /* ... */
  grid-area: imagem;
}

由于imagem-dirimagem-esq具有相同的样式定义,因此您可以考虑只使用一个类,或者按如下方式编写CSS:

.imagem-esq,
.imagem-dir {
  height: calc(30px + 18vw);
  width: calc(85px + 45vw);
  object-fit: cover;
  grid-area: imagem;
  object-position: 0 100%;
  border-radius: 30px 0px 0px 30px;
}

如果需要不同的定义,您只需单独定义该类的调整,例如

.imagem-esq,
.imagem-dir {
  height: calc(30px + 18vw);
  width: calc(85px + 45vw);
  object-fit: cover;
  grid-area: imagem;
  object-position: 0 100%;
  border-radius: 30px 0px 0px 30px;
}

.imagem-dir {
  background: green;
}

完整的CSS可能如下所示:

.valores-esq,
.valores-dir {
  display: grid;
  text-align: left;
  gap: calc(10px + 3vw);
}

.valores-esq {
  grid-template-areas:
    'imagem titulo'
    'imagem texto';
  margin-right: 10vw;
  row-gap: 1px;
}

.valores-dir {
  grid-template-areas:
    'titulo imagem'
    'texto imagem';
  margin-left: 5vw;
}

.imagem-esq,
.imagem-dir {
  height: calc(30px + 18vw);
  width: calc(85px + 45vw);
  object-fit: cover;
  grid-area: imagem;
  object-position: 0 100%;
  border-radius: 30px 0px 0px 30px;
}

.titulo-valores,
.texto-valores {
  font-family: Martel;

}

.texto-valores {
  grid-area: texto;
  font-size: 15px;
}

.titulo-valores {
  grid-area: titulo;
  font-size: 20px;
}

相关问题