将 <img> 元素定位在 <span> 元素中,这两个元素都在 <li> 元素中?

Positioning <img> element inside <span> element which both are in <li> element?

我有这个:

#left {
  float: left;
  width: 40%;
}

nav ul {
  list-style-type: none;
}

nav ul li {
  border-bottom: 2px solid red;
  border-left: 2px solid red;
  border-right: 2px solid red;
}

nav ul li a {
  text-decoration: none;
}

.menu {
  float: right;
}
<div id="left">
  <nav>
    <ul>
      <li>
        <a href="#">medical center</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
      <li>
        <a href="#">medical tips</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
      <li>
        <a href="#">medical center</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
      <li>
        <a href="#">medical smtg</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
      <li>
        <a href="#">medical smtg2</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
      <li>
        <a href="#">medical smtg3</a>
        <span class="menu">
          <img src="https://i.stack.imgur.com/Af2zp.png" width="25px">
        </span>
      </li>
    </ul>
  </nav>
</div>

看起来像这样:

我必须这样做:

我怎样才能做到这一点?

您可以对 li 元素使用 position: relative;,对于内部跨度使用 position: absolute; right: 0;

#left {
  float: left;
  width: 40%;
}

nav ul {
  list-style-type: none;
}

nav ul li {
  border-bottom: 2px solid red;
  border-left: 2px solid red;
  border-right: 2px solid red;
  position: relative;
}

nav ul li a {
  text-decoration: none;
}

.menu {
  position: absolute;
  right: 0;
  top: 0;
}
<div id="left">
  <nav>
    <ul>
      <li><a href="#">medical center</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical tips</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical center</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg2</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg3</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>

    </ul>
  </nav>
</div>

你可以这样修复:

.menu {
  position: absolute;
  right: 0;
}

nav ul li {
  border-bottom: 2px solid red;
  border-left: 2px solid red;
  border-right: 2px solid red;
  position: sticky;
}

这里有一个演示:

#left {
  float: left;
  width: 40%;
}

nav ul {
  list-style-type: none;
}

nav ul li {
  border-bottom: 2px solid red;
  border-left: 2px solid red;
  border-right: 2px solid red;
  position: sticky;
}

nav ul li a {
  text-decoration: none;
}

.menu {
  position: absolute;
  right: 0;
}
<div id="left">
  <nav>
    <ul>
      <li><a href="#">medical center</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical tips</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical center</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg2</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
      <li><a href="#">medical smtg3</a><span class="menu"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></span></li>
    </ul>
  </nav>
</div>

我对您的代码进行了修改。

如果喜欢请告诉我。

#left ul {
  width: 250px;
  list-style-type: none;
  padding: 0;
  border: 2px solid red;
}
#left ul li a {
  padding: 3px 0 3px 15px;
  color: red;
  font-weight: bold;
  text-transform:capitalize;
  text-decoration: none;
}
#left ul li {  
  display: flex;
  justify-content: space-between;
}

#left ul li .reverse-flag {
  position: relative;
  width: 22px;
  border-style: solid;
  border-width: 0 0 25px 15px;
  border-color: red transparent red transparent;
}
#left ul li img {
  position: absolute;
  top: 0;
  right: 0;
}
#left ul li:not(:last-child) {
  border-bottom: 2px solid red;
}
<div id="left">
 <nav>
  <ul>
   <li><a href="#">medical center</a>
    <div class="reverse-flag">
     <img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>
   </li>
   <li><a href="#">medical tips</a>

    <div class="reverse-flag">
     <img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>
   </li>
   <li><a href="#">medical center</a>
                <div class="reverse-flag"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>
        </li>
   <li><a href="#">medical smtg</a>
                <div class="reverse-flag"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>

      </li>
   <li><a href="#">medical smtg2</a>
        
                <div class="reverse-flag"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>
      </li>
   <li><a href="#">medical smtg3</a>
                <div class="reverse-flag"><img src="https://pluspng.com/img-png/free-png-plus-sign-plus-icon-512.png" width="25px" ></div>
      </li>
  </ul>
 </nav>
</div>