如何在一个横跨整个网页的区域内垂直对齐图片?


对齐是确定放置元素(如文本和图像、按钮和内容框)位置的关键。响应式设计的关键组成部分是在网站上排列项目。这是因为当从屏幕尺寸较小的设备(例如智能手机)打开网站时,网站的布局和结构将根据您的预先规划进行调整。

但是,这种更改也会影响项目之间和项目内部的间距,以及它们的排列和位置。如果您的对齐不正确,您可能会发现按钮或表单无法点击或填写,或者屏幕上缺少一半文本。

在本文中,我们将讨论如何在 div 元素中垂直对齐图像。当照片垂直对齐时,它们会排列成列。这被称为图像的垂直对齐。图像可以与任何文本或其他图像本身垂直对齐。这可以通过使用一些 CSS 属性来实现,例如 CSS 网格、CSS 弹性盒子和 vertical-align 等。

使用 CSS 的 vertical-align 属性

vertical-align – 使用此CSS 属性设置元素的垂直对齐。

语法

element{
   vertical-align: values;
}

值可以采用以下方式:

  • 长度 - 将元素向上或向下移动指定的长度

  • % - 将元素向上或向下移动

  • 顶部、中间、底部、基线等。

  • 初始值

  • 继承

示例

在这里,我们使用vertical-align属性将图像与文本垂直对齐。

<!DOCTYPE html>
<html>
<head>
   <title> Vertical Alignment </title>
   <style>
      body {
         background: rgb(200, 221, 220);
      }
      h1{
         text-align: center;
         color: #00FF00;
         text-decoration: underline;
      }
      .main {
         border: 1px solid black;
         height: 70%;
         width: 90%;
         padding: 15px;
         margin-top: 10px;
         margin-right: -5px;
         border-radius: 5px;
      }
      .main img {
         width: 40%;
         height: 8%;
         padding: 2px;
         border-radius: 7px;
      }
      span {
         padding: 55px;
         font-size: 25px;
         color: #097969;
         vertical-align: 100%;
         font-family: Brush Script MT;
         font-weight: 900;
      }
      img{
         width: 100%;
         height: 100%;
      }
   </style>
</head>
<body>
   <h1> Vertical Alignment </h1>
   <div class= "main">
      <img src= "https://tutorialspoint.com/images/logo.png" alt= "tutorialspoint">
      <span>Welcome to Tutorialspoint </span>
   </div>
</body>
</html>

使用 CSS Flexbox

垂直对齐一系列元素可以使用 CSS Flexbox 和 CSS Grid 来完成。

CSS Flexbox 是一个包含多个弹性元素的容器。可以根据需要将弹性元素排列成行或列。弹性容器是父元素,而弹性项目是其子元素。

display:flex 允许开发者为每个组件设置样式,使其看起来合适且美观。它将元素的子元素排列成行或列。

有多种弹性容器属性。它们如下所示:

  • flex-direction – 用于指示容器堆叠弹性组件的方向。值 – column、column-reverse、row、row-reverse

  • flex-wrap – 用于指定或确定是否需要换行弹性项目。值 – wrap、nowrap

  • flex-flow – 它允许开发者一起指定 flex-direction 和 flex-wrap。值 – row wrap、column nowrap 等。

  • align-items – 用于确定弹性项目的对齐方式

  • – center、flex-start、flex-end、space-around 等。

  • flex-basis – 用于指定弹性项目的尺寸。

  • – 可以是长度 (cm、px、em) 或百分比。

  • justify-content – 也用于弹性项目的对齐。

  • – center、flex-start、flex-end、space-around 等。

  • flex-shrink – 接受数字作为值。如果一个项目的值为 3,则其收缩幅度将比值为 1 的项目大三倍。

  • order – 它指定应对齐弹性元素的顺序。

示例

<!DOCTYPE html>
<html>
<head>
   <title> Vertical alignment of series of images </title>
   <style>
      body {
         background: rgb(200, 221, 220);
      }
      h1{
         text-align: left;
         margin: 15px;
         color: green;
         text-decoration: underline;
      }
      h2{
         margin: 15px;
      }
      .main {
         border: 1px solid black;
         height: 55%;
         width: 20%;
         padding: 25px;
         margin: 10px;
         border-radius: 5px;
      }
      .main img {
         width: 100px;
         height: 110px;
         padding: 3px;
         border-radius: 7px;
      }
      .main{
         display: flex;
         flex-direction: column;
         align-items: center;
         justify-content: center;
      }
   </style>
</head>
<body>
   <h2> Vertical alignment of images using CSS flexbox </h2>
   <div class= "main">
      <img src= "https://tutorialspoint.com/coffeescript/images/coffeescript-mini-logo.jpg" alt= "Nature 1">
      <img src= "https://tutorialspoint.com/javafx/images/javafx-mini-logo.jpg" alt= "Nature 2">
      <img src= "https://tutorialspoint.com/hadoop/images/hadoop-mini-logo.jpg" alt= "Nature 3">
   </div>
</body>
</html>

使用 CSS Grid

由于 CSS Grid 功能,无需使用浮动和定位即可更轻松地构建网页,它允许开发者使用行和列建立基于网格的布局系统。网格容器是父元素。display: grid 用于将元素创建为网格。

一些 CSS 网格属性如下:

  • grid-template-columns – 用于创建列。值以长度、% 等表示。

  • grid-template-rows – 用于创建行。值以长度、% 等表示。

  • grid-gap – 这是一个简写属性,用于列和行间距。

示例

<!DOCTYPE html>
<html>
<head>
   <title> Vertical alignment of images using CSS Grid </title>
   <style>
      body {
         background: rgb(200, 221, 220);
      }
      h1{
         text-align: left;
         margin: 15px;
         color: green;
         text-decoration: underline;
      }
      h2{
         margin: 15px;
      }
      .main {
         border: 1px solid black;
         height: 55%;
         width: 30%;
         padding: 15px;
         margin: 10px;
         border-radius: 5px;
         display: grid;
         grid-template-rows: 35% 35%;
      }
      .main img {
         width: 150px;
         height: 110px;
         padding: 2px;
         border-radius: 7px;
      }
   </style>
</head>
<body>
   <h2> Vertical alignment of images using CSS Grid </h2>
   <div class= "main">
      <img src= "https://tutorialspoint.com/coffeescript/images/coffeescript-mini-logo.jpg" alt= "Nature 1">
      <img src= "https://tutorialspoint.com/javafx/images/javafx-mini-logo.jpg" alt= "Nature 2">
      <img src= "https://tutorialspoint.com/hadoop/images/hadoop-mini-logo.jpg" alt= "Nature 3">
   </div>
</body>

结论

在本文中,我们讨论了在横跨整个网页的区域内垂直对齐图像的不同方法。

更新于:2023年2月20日

浏览量:287

启动您的职业生涯

通过完成课程获得认证

开始
广告