1

我整天都在寻找解决方案,并阅读了许多关于图像调整大小和 DOM 节点搜索和 Wordpress 功能以及任何其他可能的方法的文章。

这是场景...

我正在为客户创建 Wordpress 的自定义主题。这是一个报纸网站,需要按比例自动调整图片大小以适合页面上某个框的功能。通常我只会width:SomeWidth在 CSS 中设置,但我没有任何方法来识别 img。

我的索引页面是一个框架,wordpress 引擎会加载内容。这意味着在它显示给用户之前,我无法控制图像上的属性。(是的,我们可以手动调整每张图片的大小,但我的客户不想这样做,她还希望它是单页上的原始大小。

这是其中一个盒子:

<div class="box-center">
        <h1>Music 101</h1>
        <div class="box-inner-center">
            <ul>
                <?php
                    global $post;
                    $args = array('numberposts'=>1,'category'=>get_cat_ID('Music 101'));
                    $myposts=get_posts($args);
                    foreach($myposts as $post) : setup_postdata($post); ?>
                        <li><?php the_content(); ?></li>
                    <?php endforeach; ?>
            </ul>
            <a class="more" href="<?php echo esc_url(get_category_link(get_cat_ID('Music 101'))); ?>">More Music 101 >></a>
        </div>
    </div>

页面加载后会出现以下内容:

<div class="box-center">
    <h1>Music 101</h1>
        <div class="box-inner-center">
            <ul>
                <li>
                    <p>
                        <a href="http://***?attachment_id=150" rel="attachment wp-att-150">
                            <img class="alignnone  wp-image-150" alt="Venice Symphony Orchestra" src="http://***/Venice-Symphony-Orchestra.jpg" width="960" height="640">
                        </a>
                    </p>
                    <p><span style="color: #000000;"><b><i>Some sample text.</i></b></span></p>
                    <p><span style="color: #000000;"><b>By Someone</b></span></p>
                    <p><span style="color: #000000;">Some quote and more content</span></p>
                    <p><span style="color: #000000;"><a href="http://***?p=141#more-141" class="more-link">(more…)</a></span></p>
                </li>
            </ul>
            <a class="more" href="http://***/?cat=20">More Music 101 &gt;&gt;</a>
        </div>
    </div>

我尝试使用document.getElementById("box-center").childNodes然后循环遍历结果document.getElementByTagName("img")for在那里设置属性,但是上面的行以某种方式没有返回任何结果。

如果可能的话,我宁愿不使用 JQuery 或任何其他库。

感谢您的时间。

4

2 回答 2

2

这假设您想要调整第一次出现的 <img> 内部元素与类'box-inner-center'

var thebox = document.getElementsByClassName('box-inner-center')[0];
var theimg = thebox.getElementsByTagName('img')[0];
theimg.style.width = '100px';
于 2012-12-31T22:05:03.487 回答
2

我看不出有什么理由不能使用 css。我会建议这样的事情:

.box-center .box-inner-center img {
    width:150px; /* or whatever */
    height:auto; /* overrides the set HTML height*/
}

这将覆盖图像本身的宽度和高度属性,如果需要,您甚至可以更具体:.box-center .box-inner-center ul p > a img或任何您想要的。

于 2012-12-31T22:10:09.523 回答