html - 如何对齐图像旁边的标题和副标题?

标签 html css text-align

我正在尝试编写博客以获取使用 php 和 html 的经验。 我有一个网站,其中列出了一个特殊类别的所有帖子,它们的数量可能会有所不同。

有一个标题、一个副标题和一个 div“fakeimg”(用作我还没有得到的图片的占位符),我希望副标题位于标题下方,而 fakeimg 位于它们旁边, 它的顶部应该与标题的高度相同。

                             _________
title, mostly a short one   |         |   
                            | fakeimg |
the subheading, one row or  |         |
maybe two                   |_________| 

________a hr between the posts_________
                             _________
title, mostly a short one   |         |   
                            | fakeimg |
the subheading, one row or  |         |
maybe two                   |_________| 

我已经尝试了很多我在互联网上找到的东西来让它们像我想要的那样对齐,但不知何故我没能让它与 display: flex 或 block 一起工作,例如

这里是 fakeimg 的 css,应该包含标题、副标题和 fakeimg 的 div 以及仅包含标题和副标题的 div。

.fakeimg {
  width: 100px 100px;
  padding: 3em 2em;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-right: 0.5em;
  background-color: lightgrey;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  float: right;
  display: block;
}

 .title-and-subheading-onecat{
  margin-right: 1.5em;
  display: flex;
  align-items: start;
}

.one-post  {
  clear: both;
  margin: 0;
}

.post-description {
  margin-bottom: auto;
}

这里也是页面本身的代码

<?php foreach($post as $p):?>
  <div class="title-and-subheading-onecat">
    <div class="one-post">
      <a href="http://localhost:8888/blog/public/index.php/post?id=<?php echo e($p->id); ?>">
        <?php echo (e($p['title'])); ?>
      </a>
      <br />
    </div>
    <div class="post-description">
        <?php echo nl2br(e($p['subheading']));?>
    </div>
    <div class="fakeimg">
      Image
    </div>
  </div>
<?php endforeach;?>

通过编辑,fakeimg 的起始高度与标题相同,这正是我想要的。还有一个问题是 fakeimg 应该都在正确的站点上并且具有相同的水平位置,现在它直接在副标题旁边。

作为新手,我很感激得到的任何帮助。

最佳答案

您必须使用单独的 div。一个用于标题和副标题,另一个用于图像。然后以某种方式指定两者的宽度,使它们加起来达到 100%。将它们都向左浮动,以便它们彼此相邻。我已经调整了你的代码。

CSS

.img-parent {
  width: 50%;
  float: left;
}
.fakeimg {
  width: 100px 100px;
  padding: 3em 2em;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-right: 0.5em;
  background-color: lightgrey;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  position: relative;
  display: block;
}

 .title-and-subheading-onecat{
  margin-right: 1.5em;
  display: block;
  align-items: start;
}

.one-post  {
  width: 50%;
  float:left;
}

.post-description {
  float: left;
  margin-bottom: auto;
}

HTML:

  <div class="title-and-subheading-onecat">
    <div class="one-post">
      <div class="title">
        <a href="http://localhost:8888/blog/public/index.php/post?id=1">
          asdasd asd asd asd asd asd asd
        </a>
      </div>
      <div class="post-description">
        asdasdasd asd asd ad as dasd asdas das asd asdas dasd asd asda das dasd asds
      </div>
    </div>
    <div class="img-parent">
      <div class="fakeimg">
        Image
      </div>
    </div>
  </div>

JSFiddle:https://jsfiddle.net/ashhaq12345/Lgsa0r6f/

关于html - 如何对齐图像旁边的标题和副标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54072128/

相关文章:

html - 将 div 的高度设置为 70%

html - 将一串文本放在一行中

css - 改进 CSS 中的文本对齐

css - 根据文本是否为多行以不同方式对齐文本?

javascript - Bootstrap 旋转木马不居中

html - 检测多个选中的复选框

html - 如何防止窗口范围内的粘性元素在更宽的 block 内滚动?

css - 文本对齐:绝对定位的子元素居中,其行为类似于 left: 50%

html - 如何重叠两个div同时将其中一个居中

css - 如何将一个类的边界扩展到其他类