【问题标题】:CSS/Javascript Solution to automatically apply height/width attributes based on image orientation基于图像方向自动应用高度/宽度属性的 CSS/Javascript 解决方案
【发布时间】:2012-02-04 12:39:04
【问题描述】:

所以我正在设计一个 Wordpress 主题,我有四个 div (380x400),我使用帖子中的缩略图填充作为背景,问题是,如果图片是横向的,它会在底部留下一个空白所以我不能在 CSS 中使用width:100%,如果我使用height:100%,肖像图像的高度也会出现同样的问题。

如果图像的高度大于宽度(例如style.width='100%'),我想要做的是分配一个 width 属性为 100%,如果宽度大于高度,则分配一个 height .我正在寻找简单,我不介意使用 jQuery 解决方案,但我真的不熟悉 jQuery。只要纵横比保持不变,如果图像被裁剪掉边缘,我也没有问题。

附上我所描述情况的Screenshot

以下是相关代码:

    <?php $thumbnail = '';
      $post_image_id = get_post_thumbnail_id($post_to_use->ID);
      if ($post_image_id) {
        $thumbnail = wp_get_attachment_image_src( $post_image_id, 'post-thumbnail', false);
        if ($thumbnail) (string)$thumbnail = $thumbnail[0];
        }
      if (!empty($thumbnail)) { ?>
<div class="item" id="post-<?php the_ID(); ?>">
   <img class="background" src="<?php echo $thumbnail; ?>" onload="changeWidth(this);">
<div class="date">
<?php the_date(); ?>
</div>

CSS:

.item, .no-thumbnail{
  width:380px;
  height:400px;
  margin:5px 0px;
  border:1px solid black;
  float:left;
  position:relative;
  margin:5px;
  display:inline;

}

.item img.background{
  position:absolute;
  left:0px;
  z-index:-500;
  width:150%;
 }

【问题讨论】:

    标签: javascript css wordpress


    【解决方案1】:

    由于您在网格中显示缩略图和文本,因此既好又简单的方法是使所有缩略图大小相同。您可以在生成缩略图时修剪照片,或者使用 css 隐藏其余部分。这将使您的网格看起来更干净,如果文字和照片都排成一行,则更容易眼睛。

    如果您仍想显示整个缩略图,可以在将鼠标悬停在网格中的“固定大小”缩略图上时使用 CSS/javascript/jQuery 来显示它。

    编辑:创建了一个示例来显示clipping centered thumbnails of different orientation/aspect ratios。只需要一个容器(主要用于设置画廊的宽度)和&lt;a href="..." style="background-image: url(...);"&gt;&lt;/a&gt; 即可显示缩略图并提供完整照片的链接。

    在这个例子中我没有包括标题和摄影师。 &lt;a /&gt; 标签充当容器 - 应该可以在其中添加文本,然后根据需要定位它。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2020-11-04
    • 2013-12-16
    相关资源
    最近更新 更多