自定义Pin It按钮没有显示在图像上方,而是显示为块TOP_LEFT

时间:2017-02-11 作者:samar

我正在创建一个插件,在帖子内容内的所有图像上添加Pin按钮。但此按钮并没有将附件图像包装在其中,以显示在图像上。它显示在图像的左上角(作为块)。我希望它正好出现在图像上方。在wordpress内容中,图像被包装在p标记中。但是我的Pin-it按钮标记落在p标记as块之外。请帮助解决此问题。

这是CSS:

.固定按钮{宽度:100%;位置:相对;顶部:-6px;}

/***Pinterest pin按钮插件的构造函数类*/

函数\\uu构造(){

    // Add the pin button inside the content filter
    add_filter(\'the_content\', array(&$this, \'Add_Pin_Button\') );
}

/**
 * Adds the pin button to each image inside the content
 */
public function Add_Pin_Button($content){
    global $post;

    // Get the post urls
    //$posturl = urlencode(get_permalink());

    // Define a pattern to find all images inside the content
    $pattern = \'/<img(.*?)src="(.*?).(bmp|gif|jpeg|jpg|png)" (.*?) width="(.*?)" height="(.*?)" \\/>/i\';

    // Replace the images with the following div and pin button
    $replace_by_button_div = \'
        <img$1src="$2.$3" $4 width="$5" height="$6" />
        <div class="pin-it-button pinup">
        <a href="http://pinterest.com/pin/create/button/?url=\'.urlencode(get_permalink()).\'&media=$2.$3 &description=\'.urlencode(get_the_title()).\'" target="_blank" class="pinimg" >Pin It</a></div>
        \';

    // Replace the images with a containing div with a pin button on the image
    $content = preg_replace( $pattern, $replace_by_button_div, $content );

    return $content;
}

1 个回复
SO网友:Johansson

我假设您需要以下内容:

enter image description here

HTML输出可以帮助我们更清楚地理解问题。但是,可以使用以下命令将父对象的位置设置为相对:

p.your-p-class {
    position:relative}
然后,将按钮定位为绝对。

.pin-it-button{ 
    position: absolute; 
    top:-50%;
    left:50%}
这将使您的pin位于顶部和左侧的中间位置,这将使其位于图像的中心。根据pin码的大小,您可能需要稍微降低百分比。

相关推荐