2

我的网站是一个搜索引擎,它使用 foreach 循环返回许多结果:

foreach ($xml->channel->item as $result) {
    $ltitle = $result->title;
    $ldesc = $result->description;
    $url = $result->displayUrl;
    $link = $result->link;

    if (strlen($ltitle) > 60)
    {
$title = substr($ltitle,0,60).'...' ;
    }
    else
    {
    $title = $ltitle;
    }

if (strlen($ldesc) > 195)
    {
$desc = substr($ldesc,0,195).'...' ;
    }
    else
    {
    $desc = $ldesc;
    }


    echo "

<br>


<div class='resultbox'>

<a class='normal' style='text-decoration:none;font-size:huge;font-weight:bold' href='$link'>$title</a><br>
<div style='padding-top:3px;padding-bottom:4px;width:580px;'>
<font style='text-decoration:none;font-size:small;font-family:Arial;'>$desc<br></font></div>
<a style='text-decoration:none;' href='$link'><font style='text-decoration:none;font-size:small;color:green;font-weight:bold;'>$url<br></font></a>

</div>
";
}

上面的 resultbox 类使用这个样式设置所有结果

.resultbox
{
height:auto;
width:600px;
background-color:transparent;
font-size:19px;
padding:10px;
padding-left: 30px;
padding-right: 30px;
border-left: 6px solid #333;
}
.resultbox:hover
{
border-left: 8px solid #555;
}

左边框颜色是我想要更改的,我希望它从颜色代码列表中随机生成或设置样式,因此结果,除了全部 #333 可以是 #333 #555 #999 等等。 .... 有任何想法吗?

4

5 回答 5

3

如果你使用 JS 没有问题,你当然可以这样做:

$(document).ready(function () {

    $('.resultbox').mouseenter(function() {
        var randomColor = Math.floor(Math.random()*16777215).toString(16);
     $('.resultbox').css("border-left", " 8px solid #"+randomColor);    
    });
});
于 2013-05-06T10:35:03.963 回答
2

更改<div class='resultbox'><div class='resultbox random-color-".rand(1,YOUR_COLOR_LIMIT)."'>并定义颜色,例如

.random-color-1 {
     border-left: 8px solid #555;
}
.random-color-2 {
     border-left: 8px solid #555;
}
.....
.random-color-YOUR_COLOR_LIMIT {
     border-left: 8px solid #555;
}
于 2013-05-06T10:27:24.233 回答
1

首先,为你的 foreachloop 试试这个:

<?php foreach ($xml->channel->item as $result): ?>
    <?php 
       $ltitle = $result->title;
       $ldesc = $result->description;
       $url = $result->displayUrl;
       $link = $result->link;

       if (strlen($ltitle) > 60){
           $title = substr($ltitle,0,60).'...' ;
       }else{$title = $ltitle;}

       if (strlen($ldesc) > 195){
           $desc = substr($ldesc,0,195).'...' ;
       }else{$desc = $ldesc;}
    ?>



    <div class='resultbox'>

        <a class='normal' style='text-decoration:none;font-size:huge;font-weight:bold' href='<?php      echo $link ?>'><?php echo $title; ?></a>
    <br>
    <div style='padding-top:3px;padding-bottom:4px;width:580px;'>
    <font style='text-decoration:none;font-size:small;font-family:Arial;'>
        <?php echo $desc; ?><br>
    </font>
    </div>
        <a style='text-decoration:none;' href='<?php echo $link; ?>'><font style='text-  decoration:none;font-size:small;color:green;font-weight:bold;'><?php echo $url; ?><br></font>  </a>

    <?php endforeach; ?>

这样你就不会玩大回声了。

现在要生成随机颜色,您可以使用 php rand();

例如:

//Generate a random number between the two parameters
$randomNumber = rand(1, 3);

//Use this number to dictate what the variable color should be
if($randomNumber == 1){$color = "#333"}
elseif($randomNumber == 2){$color = "#555"}
elseif($randomNumber == 3){$color = "#999"}

然后,您可以在代码中使用变量 $color 将其中一种颜色随机分配给元素。

希望这可以帮助!

-桂

于 2013-05-06T10:37:38.973 回答
1

改变

<div class='resultbox'>

<div class='resultbox' style='border-left-color:$yourColorInCssFormat;'>

style 属性覆盖了类中的 css。设置$yourColorInCssFormat为您希望为 div 设置的颜色。例如:$yourColorInCssFormat = '#999';

于 2013-05-06T10:24:39.760 回答
1

您可以为此使用内联样式。或者,您可以使用css 的nth-child选择器来重复边框颜色方案,如下所示:

.resultbox:nth-child(n+1):hover {

}

.resultbox:nth-child(2n+1):hover {

}

.resultbox:nth-child(3n+1):hover {

}
于 2013-05-06T10:29:06.663 回答