多彩多姿的div

时间:2013-05-06 10:18:09

标签: php css

我的网站是一个搜索引擎,使用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和等......任何想法?

5 个答案:

答案 0 :(得分:3)

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

$(document).ready(function () {

    $('.resultbox').mouseenter(function() {
        var randomColor = Math.floor(Math.random()*16777215).toString(16);
     $('.resultbox').css("border-left", " 8px solid #"+randomColor);    
    });
});

答案 1 :(得分: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;
}

答案 2 :(得分:1)

更改

<div class='resultbox'>

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

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

答案 3 :(得分:1)

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

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

}

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

}

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

}

答案 4 :(得分: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将其中一种颜色随机分配给元素。

希望这有帮助!

-GUI