Разве есть способ написать этот код Flex с помощью CSS?

Мне нужна была помощь с Flex. Я пытаюсь добиться чего-то вроде это используя flex, но я не могу выровнять все элементы слева для обоих. Код, который я предоставил ниже, работает нормально, но я уверен, что должен быть лучший способ сделать это, но, похоже, у меня ничего не работает.

Вот Ссылка на CodePen для всех, кто хотел бы мне помочь.

<div class="sidebar">
<nav class="sidebar-nav">
    <div class="sidebar-nav-line">
        <div class="sidebar-nav-text">
            <p>Home</p>
        </div>
        <div class="sidebar-nav-icon">
            <img class="sidebar-nav-icon-img" src="assets/img/sidebar-icons/home.png" alt="Home-Icon">
        </div>
    </div>
    <div class="sidebar-nav-line">
        <div class="sidebar-nav-text">
            <p>About Me</p>
        </div>
        <div class="sidebar-nav-icon">
            <img class="sidebar-nav-icon-img" src="assets/img/sidebar-icons/about_me.png" alt="About-Me-Icon">
        </div>
    </div>
    <div class="sidebar-nav-line">
        <div class="sidebar-nav-text">
            <p>Projects</p>
        </div>
        <div class="sidebar-nav-icon">
            <img class="sidebar-nav-icon-img" src="assets/img/sidebar-icons/projects.png" alt="Projects-Icon">
        </div>
    </div>
    <div class="sidebar-nav-line">
        <div class="sidebar-nav-text">
            <p>Resume</p>
        </div>
        <div class="sidebar-nav-icon">
            <img class="sidebar-nav-icon-img" src="assets/img/sidebar-icons/resume.png" alt="Resume-Icon">
        </div>
    </div>
    <div class="sidebar-nav-line">
        <div class="sidebar-nav-text">
            <p>Contact</p>
        </div>
        <div class="sidebar-nav-icon">
            <img class="sidebar-nav-icon-img" src="assets/img/sidebar-icons/contact.png" alt="Contact-Icon">
        </div>
    </div>
</nav>
</div>

CSS

.sidebar {
    background-color: #2C2C2C;
    width: 255px;
    height: 100vh;
}

.sidebar-nav {
    text-align: center;
}

.sidebar-nav-line {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
}

.sidebar-nav-text{
    margin-right: 15px;
    align-self: center;
    color: #dec29b98;
    text-transform: uppercase;
    font-size: 20px;
}

.sidebar-nav-icon {
    margin-right: 32px;
    align-self: center;
}

.sidebar-nav-icon-img {
    width: 30px;
    height: 30px;
}

1 ответ
1

Я немного поигрался с css и закончил с этим. Не знаю, действительно ли это то, что вы хотели, но, возможно, это поможет вам получить новые идеи.

*{margin: 0;font-family: "Poppins", sans-serif;}
html{background-color:#1c1c20;}
.col{
  display:grid;
  width:200px;
  background-color:#2c2c2c;
  height:100vh;
}
.menu{
  width:95%;
  padding-top:10%;
}
.box{
  text-align:right;
  color:#dec29b98;
  padding:5px;
}
.box > div{
margin-right:10px;
display:inline-block;
vertical-align: middle;
cursor:pointer;
}
<div class="col">
  <div class="menu">
      
      <div class="box">
        <div>LINK 1</div>
        <div><img src="https://i.stack.imgur.com/T5uTa.png"></div>
      </div>
    
      <div class="box">
        <div>LINK 2</div>
        <div><img src="https://i.stack.imgur.com/T5uTa.png"></div>
      </div>
      
      <div class="box">
          <div>LINK 3</div>
          <div><img src="https://i.stack.imgur.com/T5uTa.png"></div>
      </div>
      
  </div>
</div>

  • 1

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

    — Эмон Хок

  • 1

    @EmonHoque Не забывайте не только проверять ответы, но и голосовать за те, которые считаете полезными. Это дает респонденту уверенность в том, что эти мнимые числа тикают ^^

    — N3буходоносор

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *