web-dev-qa-db-ja.com

CSSとHTMLを使用したプログレスバーのレイアウト

画像に示されているUIを実現しようとしています。しかし、今ではポジショニングの組み合わせを試した後、ほとんど苦労していません。誰かがこれで私を助けることができますか?

enter image description here

<style>
    .progress{
        position:relative;
        width:500px;
    }
    .bar{

    }
    .percent{

    }
</style>
<div class="progress">
    <span class="bar" width="%"></span>
    <span class="percent">50%</span>
</div>
22
Anil Namde

HTML:

<div id="progress">
    <span id="percent">30%</span>
    <div id="bar"></div>
</div>

CSS:

#progress {
 width: 500px;   
 border: 1px solid black;
 position: relative;
 padding: 3px;
}

#percent {
 position: absolute;   
 left: 50%;
}

#bar {
 height: 20px;
 background-color: green;
 width: 30%;
}

ここのサンプル: http://jsfiddle.net/WawPr/

28
Matt Mitchell
.progress{
        position:relative;
        width:500px;
        border:1px solid #333;
        position:relative;
        padding:3px;
    }
    .bar{
        background-color:#00ff00;
        width:50%;
        height:20px;
        transition:width 150ms;
    }
    .percent{
        position:absolute;
        display:inline-block;
        top:3px;
        left:50%;
        transform:translateX(-50%);
    }
<div class="progress">
    <div class="bar"></div >
    <div class="percent">50%</div >
</div>

http://jsfiddle.net/gaby/Zfzva/ のインタラクティブデモ

6

私は同じ問題を抱えており、これを開発しました:

http://jsfiddle.net/DgXM6/2/

HTML:

<div class="noload">
     <span class="loadtext">40%</span>
    <div class="load"></div>
</div>

CSS:

.load{    
width: 50%;
height: 12px;
background: url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAALCAYAAAC+jufvAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwAAADsABataJCQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAAPklEQVQYV2M48Gvvf4ZDv/b9Z9j7Fcha827Df4alr1b9Z1j4YsV/BuML3v8ZTC/7/GcwuwokrG4DCceH/v8Bs2Ef1StO/o0AAAAASUVORK5CYII=);  
-moz-border-radius: 4px;
border-radius: 4px;
}

.noload{
width: 100px;    
 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAALCAYAAAC+jufvAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwAAADsABataJCQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAAANUlEQVQYVy3EIQ4AQQgEwfn/zwghCMwGh8Tj+8yVKN0d2l00M6i70XsPmdmfu6OIQJmJqooPOu8mqi//WKcAAAAASUVORK5CYII=); 

-moz-border-radius: 4px;
border-radius: 4px;
    border: 1px solid #999999;    
    position: relative;
}

.loadtext {
    font-family: Consolas;    
font-size: 11px;
    color: #000000;
     position: absolute;
    bottom: -1px;

 left: 45%;       
}
4
fubo

Onclick関数を次のように変更するだけで、受け入れられたソリューションのアニメーションバージョンが作成されます。

$('.changeprogress').click(function() {
  var width = 1;
  var percent = $(this).text().replace('%','') ;
  var id = setInterval(frame, 25);

  function frame() {
    if (width >= percent) {
      clearInterval(id);
    } else {
      width++;
      $('.bar').css('width', width + '%');
      $('.percent').text(width + '%');
    }
  }

});

http://jsfiddle.net/Zfzva/418/ で確認できます。

おかげで

https://stackoverflow.com/a/5865894/2815227

https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_progressbar_

1
mcvkr

次のサンプルでは、​​ブラウザがボックスに次元を与えるために、非分割スペースに追加しました。それがないと、空であると見なされ、正しい幅と高さが適用されません。

また、ボックスを互いの上に配置するために、位置:絶対位置を指定することもできます。また、divにはwidth属性がないため、width属性の代わりにstyle属性を使用する必要があります。

<style>
    .progress{
        border: 1px solid black;
        position:relative;
        width:500px;
    }
    .bar{
        background-color: #00ff00;
        position:absolute;
    }
    .percent{
        position:absolute;
        left:200px;
    }
</style>
<div class="progress">
    <div class="bar" style="width:50%">&nbsp;</div>
    <div class="percent">50%</div>
    &nbsp;
</div>
1
Alex
<style>
.progress{
    position:relative;
    width:500px;
    height:30px;
    border:1px solid #000;
}
.bar{
  //Change width with javascript
  position:absolute;
  top:0px; left:0px;
  background:#0F3;
  max-width:500px;
  height:30px;
}
.percent{
   position:relative;
   width:100%;
   text-align:center;
   font-size:18px;
   padding:10px;
}
</style>
<div class="progress">
<div class="percent"><span>50%</span><div class="bar"></div></div>
</div>

フォントサイズとパディングを調整して適切に調整する必要がありますが、それで問題ありません。

1
Senica Gonzalez

ここに%を動的に変更するコードがあります

HTML

 <div class="progress">
          <span class="percent">{{currentTimer}}</span>
          <div class="bar" [style.width]="progress + '%'"></div>
          <span class="duration">{{duration}}</span>
      </div>

CSS

.progress {
    width: 100%;   
  //  border: 1px solid black;
    position: relative;
    padding: 0px;
   }

   .percent {
    position: absolute;   
    left: 0%;
   }

   .bar {
    height: 16px;
    background-color: rgb(41, 49, 32);

   }
   .duration {
    position: absolute;   
    left: 90%;
    top:-5%
   }
0
ULLAS K

この例を見てください...

HTMLコード:

<div id="progressbar" style="height:25px;">
    <span class="text"></span>
</div>

CSS

.text { 
    color: black;
    margin-left: 130px;
    position: absolute;
}

JQUERY:

$( "#progressbar" ).progressbar({ 
   value: some_Value;
 });
$("#progressbar span.text").text(some_Value + "%");
0
Imran Khan

私はあなたのために半分の仕事をしました。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
  <style type="text/css">
 #container { width:350px; }
 #main_bar {
    width:374px;
    height:35px;
    border:1px solid #111;
 }
 #inner_bar {
    float;left;
    width:150px; 
    background:#00ff00;
    margin:-20px 0 0 5px;
}
p {
    margin-top:-33px;
    text-align:center; }

</style>

    <title>The document title</title>
  </head>
  <body>
    <div id="container">
    <div id="main_bar">
    </div><!--#main_bar-->
    <div id="inner_bar">
    <p>hello</p>
    </div><!--#inner_bar-->
    <p>30%</p>
</div>
  </body>
</html>

あなたは幅、マージン、パディングを台無しにすることができます!私は怠け者になり、それを終わらせたくありませんでした。笑

0
Blake Tallos