3

我正在尝试使用边界半径转换一些 div。我几乎得到它,但有时 div 看起来像 'eggs' 哈哈 这是我的 css:

#div{   /*div central*/
    position:absolute;
    top:50%;
    margin-top: -20%;
    left:50%;
    margin-left: -20%;
    background: #00A8D9;
    width: 40%;
    height: 40%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    border:3px solid #000;
}
#divSupIzq,#divSupDer,#divInfIzq,#divInfDer{    /*DIVs: left-top , right-top, left-bottom, right-bottom*/
    background: #ddd;
    width: 20%;
    height: 20%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    border:3px solid #fff;
    position:absolute;
}
#divSupIzq{  /*Div left-top*/
    top:15%;
    left:10%;
}
#divSupDer{ /*Div right-top*/
    top:15%;
    right:10%;
}
#divInfIzq{ /*Div left-bottom*/
    bottom:15%;
    left:10%;
}
#divInfDer{ /*Div right-bottom*/
    bottom:15%;
    right:10%;
}

在 html 中,我使用 javascript / jQuery 来更改每个 div 的内容(基本上是 div 中的文本:left-top、right-top、left-bottom、right-bottom ;和中央 div 中的数字)取决于每个 div 的大小:

$('#div').resize(function(height){
                    var fuente = $(this).height()/2;
                    var margen = (fuente / 2)-5;
                    $('.contenido').css('font-size',fuente+'px');
                    $('.contenido').css('margin-top',margen+'px');  
                });

这就是我在 chrome 的波纹扩展中看到的方式: https ://www.dropbox.com/s/k71kz5lahfolw95/screen.JPG

你能帮我为了div总是圆圈,而不是鸡蛋吗? 在此先感谢,丹尼尔

4

3 回答 3

9

画一个圆:

HTML

<div id="circle"></div>

CSS

#circle {
    width: 100px;
    height: 100px;
    background: red;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
}

是上面的小提琴。

固定宽度和高度:http: //jsfiddle.net/eC3jq/1/

circle包含在 a 中div,以便 % 宽度和高度正常工作:http: //jsfiddle.net/eC3jq/2/

来源:CSS-Tricks

于 2012-07-12T15:45:57.147 回答
1

jQuery

这也很有用,如果您将所有这些代码复制到您的站点,它将起作用。或者你可以看一个演示:

https://jsfiddle.net/whLctrp4/

调用 JQuery 函数的 HTML 代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Page Title</title>
        <link rel="stylesheet" type="text/css" href="style.css">

    </head>
    <body>

    <div class="pies">
    </div>   

包括 JQuery

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>

drawPie 函数 - 将 id/class html 属性、大小(以 px 为单位)、填充百分比和饼图颜色作为参数

    <script>

    function drawPie (id, size, percent, color) {                               
        var sizeString = "" + size + "px";                      
        var grad = 360/100*percent+90;      
        console.log(grad);
        var pie = $("<span></span>");

        pie.css({"width": sizeString, 
            "height": sizeString,               
            "display": "block",
            "border-radius": "50%",
            "background-color": color,                          
            "float": "left",
            "margin": "5px"             
        });         

        if(percent <= 50){
            pie.css({"background-image": "linear-gradient("+ grad + "deg, transparent 50%, white 50%), linear-gradient(90deg, white 50%, transparent 50%)"});
        } else if (percent >= 100) {
            pie.css({"background-image": "none"});
        } else {                                
            pie.css({"background-image": "linear-gradient("+ (grad+180) + "deg, transparent 50%, "+color+" 50%), linear-gradient(+90deg, white 50%, transparent 50%)"});                
        }

        $(id).append(pie);
    }

对于表演周期,它是如何工作的:

    for(i=0; i<=100; i+=1){
        drawPie(".pies", 100, i, "orange");
    }

    </script>       

    </body>

</html>
于 2016-06-01T18:54:00.020 回答
0

工作演示:http: //jsfiddle.net/XtTkG/3/

该演示通过使用窗口对象的调整大小事件而不是 div 本身来工作。在每次调整大小时,我们都会调整 div 及其边框半径,使其呈现为完美的圆形(即宽度 = 高度和半径 = 宽度/2)

代码:

$(window).resize(function(height) {
    var div = $('#div');
    var width = $('body').width() * 0.4;
    var radius = width/2;
    width += 'px';
    radius += 'px';
    div.css({
        width: width, height: width,
        '-moz-border-radius' : radius,
        '-webkit-border-radius' : radius,
        'border-radius' : radius
    });

    // rest of your code for font-size setting etc..
});

$(window).resize();
于 2012-07-12T15:59:42.293 回答