Как поместить дочерний элемент в центр определенного дочернего элемента? - PullRequest
0 голосов
/ 22 февраля 2019

ВСЕ РАЗРЕШЕНО


Задача

Я пытаюсь создать индикатор навыков.

текущий статус:

enter image description here

Я хочу сопоставить ширину элемента с .meter.
Другими словами, как установить стандарт блока в.meter (дочерний элемент)?
(в приведенном выше gif месте img.meter)

Извините, если мой английский плохой.Если это сбивает с толку, пожалуйста, спросите меня:)


Полное изображение

Общая картинка

enter image description here

Рисунок «Потому что я хочу сделать это, я хочу основать эту ширину зеленого цвета» (я думал, что это легко изобразить)

enter image description here


Обновление статуса

now

Спасибо за совет!
Теперь так.
Я хотел бы получить маржу на основе .meter .. (сейчасfigcaption - это стандарт)
И так как figcaption поднялся, я попытался исправить это, но это не сработало.
Еще немного, пожалуйста, подайте всем свою мудрость!

(я не мог задать следующий вопрос, почему, поэтому я создал новую учетную запись и спросил)
-> Как соответствовать ширине определенного дочернего элемента?

edit : И с ответами на этот вопрос (▲) все было SETTLED !Большое спасибо.10


код

решена проблема названия ver.(Спасибо!):

html {
 font-size: 62.5%;
 }
.data {
 padding-top: 1.7rem;
 padding-bottom: 1.7rem;
 }
.skill li {
 display: flex;
 flex-wrap: wrap;
 align-content: space-between;
 }
 .skill li :last-child {
   margin-right: 0;
   }
.code {
 margin-top: 1.7rem;
 }
figure {
 margin-right: .9rem;
 font-size: 1rem;
 position: relative;
 height: 4.4rem;   /* add */
 }
 figure > img {
   top: 0;
   bottom: 0;
   }
 figure > .meter {
   height: 4.4rem;
   /* add */
   position: absolute;
   transform: translate(-50%,-50%);
   top: 50%;
   left: 50%;
   /* /add */
   }
 figure > figcaption {
   line-height: 1;
   text-align: center;
   }
.meter-t {
 height: 2.3rem;
 display: block;
 position: absolute;
 /* top: 0; (delete) */
 bottom: 0;
 right: 0;
 /* left: 0; (delete) */
 /* margin: auto; (delete) */
 /* add */
 transform: translate(-50%,-50%);
 top: 50%;
 left: 50%;
 /* /add */
 }
.PHP > .meter-t {
 width: 2.4rem;
 }
<section class="skill">
   <p class="title">skill</p>
   <ul class="data">
     <li class="tool">
       <figure class="Illustrator">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221627.png" alt="advanced" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221624.png" alt="Illustrator" />
         <figcaption>Illustrator</figcaption>
       </figure>
       <figure class="Photoshop">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221629.png" alt="intermediate" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221753.png" alt="Photoshop" />
         <figcaption>Photoshop</figcaption>
       </figure>
       <figure class="Indesign">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221632.png" alt="elementary" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221719.png" alt="Indesign" />
         <figcaption>Indesign</figcaption>
       </figure>
       <figure class="Vectorworks">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221629.png" alt="intermediate" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221747.png" alt="Vectorworks" />
         <figcaption>Vectorworks</figcaption>
       </figure>
       <figure class="Shade">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221629.png" alt="intermediate" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221750.png" alt="Shade" />
         <figcaption>Shade</figcaption>
       </figure>
     </li>
     <li class="code">
       <figure class="HTML">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221632.png" alt="elementary" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221722.png" alt="HTML" />
         <figcaption>HTML</figcaption>
       </figure>
       <figure class="CSS">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221632.png" alt="elementary" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221725.png" alt="CSS" />
         <figcaption>CSS</figcaption>
       </figure>
       <figure class="Javascript">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221634.png" alt="beginner" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221717.png" alt="Javascript" />
         <figcaption>Javascript</figcaption>
       </figure>
       <figure class="PHP">
         <img class="meter" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221634.png" alt="beginner" />
         <img class="meter-t" src="https://cdn-ak.f.st-hatena.com/images/fotolife/O/O2_milk/20190224/20190224221714.png" alt="PHP" />
         <figcaption>PHP</figcaption>
       </figure>
     </li>
   </ul>
 </section>

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Насколько я понял, вам нужно внутреннее img с центром во внешнем img.

Пожалуйста, используйте приведенный ниже пример.

figure{
  position: relative;
  width: 100%;
  /* height equal to the height of outer image*/
  height: 400px;
}
.meter{
   border: 1px solid red;
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
}
.meter-t{
  border: 1px solid red;
  position: absolute;
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
}
  
<figure class="Photoshop">
  <img class="meter" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cat_silhouette.svg/400px-Cat_silhouette.svg.png" alt="intermediate" />
  <img class="meter-t" src="https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cat_silhouette.svg/40px-Cat_silhouette.svg.png" alt="Photoshop" />
  <figcaption>Photoshop</figcaption>
</figure>

Дайте мне знать, если возникнет какая-либо проблема.

0 голосов
/ 22 февраля 2019

Браузеры по умолчанию добавляют стили к элементам.Вы можете использовать некоторые правила сброса , чтобы переопределить их, как общее правило.

В этом случае Chrome добавляет

figure {
    display: block;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 40px;
    margin-inline-end: 40px;
}

Так что если вы добавляете в свою таблицу стилей

figure {
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
}

Вы переопределите стили браузера и удалите поля в элементе figure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...