Как разместить центрированный круг внутри другого? - PullRequest
0 голосов
/ 26 октября 2009

Я хочу поместить меньший круг внутри другого большего. (Не совсем круги, но кольца. Не имеет значения ..)
Оба круга должны быть центрированы вертикально и горизонтально в теле моей страницы (как если бы они имели центр сохранения)
Моя цель - сделать радар (что-то вроде этого -> [http://media.photobucket.com/image/radar/scottb57/radarScreen-719485.jpg), но количество колец в радаре будет соответствовать некоторым параметрам.
Должен ли я играть с z-index?

Ответы [ 2 ]

1 голос
/ 26 октября 2009

Существует способ сделать это, не занимая математических или жестких позиций для каждого человека img в зависимости от его размера.

Конечно, есть большой компромисс - разметка требует, чтобы каждые img были обернуты в 2 div с. Но тогда вам не нужно обновлять CSS каждый раз, когда вы добавляете (или удаляете) img.

<html>
   <head>
      <style type="text/css">
         /**
          * omit styles for 'div#i' if centering on page
          */
         div#i {
            position: relative;
            /**
             * set any positioning or sizing, just make
             * sure that 'height' or 'min-height' is set
             */
            height: 99.44%;
         }
         div#i>div {
            /**
             * for the outer div of each img, put its upper-
             * left corner in the center (50%, 50%) of div#i
             */
            position: absolute;
            left: 50%;
            top: 50%;
         }
         div#i>div>div {
            /**
             * the inner div of each img will be the same size
             * as the img itself, so these 50% values refer to
             * half the img width and height; move the center of
             * this inner div to upper-left corner of outer div
             */
            margin-left: -50%;
            margin-top: -50%;
            display: inline-block;
         }
         div#i>div>div>img {
            /**
             * this plus the above inline-block style will
             * vertically center img within the inner div
             * (normally it's baseline-aligned)
             */
            vertical-align: middle;
         }
      </style>
   </head>
   <body>
      <div id="i">
         <div>
            <div>
               <img src="a.png">
            </div>
         </div>
         <div>
            <div>
               <img src="b.png">
            </div>
         </div>
         <div>
            <div>
               <img src="c.png">
            </div>
         </div>
         <!--
            etc.
         -->
      </div>
   </body>
</html>
0 голосов
/ 26 октября 2009

Возможно, есть лучший способ сделать это, но это то, что я видел и использовал:

<html>
   <head>
      <style type="text/css">
         img {
            /* this puts every img's upper-left corner in center of page */
            display: block;
            position: absolute;
            left: 50%;
            top: 50%;
         }
         /* now move each img upwards and leftwards to center it */
         img#a {
            /* this img is 206x42 */
            margin-left: -103px;
            margin-top: -21px;
         }
         img#b {
            /* this img is 84x90 */
            margin-left: -42px;
            margin-top: -45px;
         }
         img#c {
            /* this img is 12x20 */
            margin-left: -6px;
            margin-top: -10px;
         }
      </style>
   </head>
   <body>
      <img id="a" src="a.png">
      <img id="b" src="b.png">
      <img id="c" src="c.png">
   </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...