【问题标题】:How would i align my image above everything else on the page?我如何将我的图像对齐页面上的所有其他内容?
【发布时间】:2021-08-25 18:33:50
【问题描述】:

我正在尝试让这张最终成为徽标的图像出现在桌子上方。我尝试过的所有操作都只是将图像移到其他内容旁边而不是在其上方。

<!DOCTYPE html>
<html>
    <head>
 
</head>

<body>


  
    <style>
        main {
    
  background-color: #1e1f1f;
  display: inline-block;
  padding: 25px;
  font-size: 1.4rem;
font-family: Arial, Helvetica, sans-serif;
}

#myInput {

  padding: 0;
  margin: 0;
  border: none;
  width: 100%;
  display: block;
  font-size: 1.4rem;
     text-align: center;
    
}
#myInput:focus {
  outline:none;
     text-align: center;
}
header label {
  display:block;
     text-align: center;
}
header strong {
  box-sizing: border-box;
  display: block;
  padding: 15px 8px;
  margin-bottom: 15px;
  background: white;
  width: 100%;
  text-align: center;
    
  
}

main>div>div,
header div {
  padding: 15px 18px;
  background: white;
    margin-bottom: 65px;
}

main>div>div {
  margin: 25px 0;
  padding: 15px 8px;
}

main>div>div>strong {
  display: inline-block;
  text-align:center;
}

output {
  display: inline-block;
  float: right;
  text-align: right;
  min-width: 10em;
}
output::before {
  content: '£';
}
output::after {
  clear: both;
  content: '';
}
    </style>
    <script src="/scripts/snippet-javascript-console.min.js?v=1"></script>
<body>
    <main>
  <header>
      <a href="https://www.ineedawheelchair.co.uk/"target="_blank"><img src="../Documents/RMS Logo - Oval.png" width="300" height="175" align="centre"></a>
    
      <label>
      <strong>Enter NHS Price Below</strong>
        <div>
          <input id="myInput"/>
        </div>
    </label>
  </header>
  <div>
    <div>
      <strong>Retail:</strong>
      <output id="output1" />
    </div>
    <div>
      <strong>Schools &amp; CDC's:</strong>
      <output id="output2" />
    </div>
    <div>
      <strong>Trade - Band A:</strong>
      <output id="output3" />
    </div>
    <div>
      <strong>Trade - Band B:</strong>
      <output id="output4" />
    </div>
    <div>
      <strong>Trade - Band C:</strong>
      <output id="output5" />
    </div>
    <div>
      <strong>Trade - Band D:</strong>
      <output id="output6" />
    </div>
  </div>
</main>
    <script type="text/javascript">
        function byId(id) {
  return document.getElementById(id)
}
window.addEventListener('load', onLoaded, false);

function onLoaded(evt) {
  let input = byId('myInput');
  input.addEventListener('input', onInputReceived, false);
}

function onInputReceived(evt) {
  let outputs = [byId('output1'), byId('output2'), byId('output3'), byId('output4'), byId('output5'), byId('output6')];
  let value = parseFloat(this.value);
  if (!isNaN(value)) {
    outputs[0].textContent = Math.ceil(value / 0.7);
    outputs[1].textContent = Math.ceil(value * 1);
    outputs[2].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 40));
    outputs[3].textContent = Math.ceil(value * 1);
    outputs[4].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 20));
    outputs[5].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 10));
  } else {
    outputs[0].textContent =
      outputs[1].textContent =
      outputs[2].textContent =
      outputs[3].textContent =
      outputs[4].textContent =
      outputs[5].textContent = "*Please Enter a Number*";
  }
}
    </script>
</body>
</html>

我尝试将它对齐到“顶部”,但我找不到任何使它出现在上方的东西,我将这个图像移动到上方的最佳和最简单的方法是什么?

【问题讨论】:

  • 为什么在body标签外面加了img标签?
  • @MetropolisCZ 全屏时编辑没有改变,它仍然出现在侧面,有什么原因吗?
  • 我们可以运行的代码是sn-p。它比纯代码更好。 stackoverflow.com/help/minimal-reproducible-example

标签: javascript html css image


【解决方案1】:

您的 HTML 结构错误。图片不应该在&lt;head&gt; 标签内。例如,head 标签应该用于加载脚本。 &lt;header&gt; 不应重复。我建议从这里开始学习 HTML 结构的基础知识https://www.w3schools.com/html/html_intro.asp

也就是说,我已将图像移到头部之外。我已将图像放在&lt;header&gt; 中。如果要将图像居中,请将标题设为 100% 宽度,然后将display: block; 应用于您的图像和margin: auto;

请参阅下面的示例。

function byId(id) {
  return document.getElementById(id)
}
window.addEventListener('load', onLoaded, false);

function onLoaded(evt) {
  let input = byId('myInput');
  input.addEventListener('input', onInputReceived, false);
}

function onInputReceived(evt) {
  let outputs = [byId('output1'), byId('output2'), byId('output3'), byId('output4'), byId('output5'), byId('output6')];
  let value = parseFloat(this.value);
  if (!isNaN(value)) {
    outputs[0].textContent = Math.ceil(value / 0.7);
    outputs[1].textContent = Math.ceil(value * 1);
    outputs[2].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 40));
    outputs[3].textContent = Math.ceil(value * 1);
    outputs[4].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 20));
    outputs[5].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 10));
  } else {
    outputs[0].textContent =
      outputs[1].textContent =
      outputs[2].textContent =
      outputs[3].textContent =
      outputs[4].textContent =
      outputs[5].textContent = "*Please Enter a Number*";
  }
}
header {
  width: 100%;
}

header img {
  display: block;
  margin: auto;
}

main {
  background-color: #1e1f1f;
  display: inline-block;
  padding: 25px;
  font-size: 1.4rem;
  font-family: Arial, Helvetica, sans-serif;
}

#myInput {
  padding: 0;
  margin: 0;
  border: none;
  width: 100%;
  display: block;
  font-size: 1.4rem;
  text-align: center;
}

#myInput:focus {
  outline: none;
  text-align: center;
}

header label {
  display: block;
  text-align: center;
}

header strong {
  box-sizing: border-box;
  display: block;
  padding: 15px 8px;
  margin-bottom: 15px;
  background: white;
  width: 100%;
  text-align: center;
}

main>div>div,
header div {
  padding: 15px 18px;
  background: white;
  margin-bottom: 65px;
}

main>div>div {
  margin: 25px 0;
  padding: 15px 8px;
}

main>div>div>strong {
  display: inline-block;
  text-align: center;
}

output {
  display: inline-block;
  float: right;
  text-align: right;
  min-width: 10em;
}

output::before {
  content: '£';
}

output::after {
  clear: both;
  content: '';
}
<!DOCTYPE html>
<html>

<head>
  <script src="/scripts/snippet-javascript-console.min.js?v=1"></script>
</head>


<body>
  <main>
    <header>
      <img src="../Documents/square.jpg" width="300" height="175" align="top">
    </header>
    <div>
      <div>
        <strong>Enter NHS Price Below</strong>
        <input id="myInput" />
      </div>
      <div>
        <strong>Retail:</strong>
        <output id="output1" />
      </div>
      <div>
        <strong>Schools &amp; CDC's:</strong>
        <output id="output2" />
      </div>
      <div>
        <strong>Trade - Band A:</strong>
        <output id="output3" />
      </div>
      <div>
        <strong>Trade - Band B:</strong>
        <output id="output4" />
      </div>
      <div>
        <strong>Trade - Band C:</strong>
        <output id="output5" />
      </div>
      <div>
        <strong>Trade - Band D:</strong>
        <output id="output6" />
      </div>
    </div>
  </main>
</body>

</html>

【讨论】:

    【解决方案2】:

    你可以把它放在你的标题标签内,但在标签之前

       <header>
        <img src="../Documents/square.jpg" width="300" height="175" align="top" >
        <label>
          <strong>Enter NHS Price Below</strong>
            <div>
              <input id="myInput"/>
            </div>
        </label>
      </header>
    

    你也可以把它放在主标签之前,虽然你可能需要创建一个包含图片链接的菜单/导航栏

       <nav>
          <img src="../Documents/square.jpg" width="300" height="175" align="top" >
       </nav>
    

    【讨论】:

    • 啊,这行得通,有什么方法可以使图像与文本居中对齐?
    【解决方案3】:

    我删除了图像并创建了一个名为 image-top 的类并添加了背景图像它们的 .你问的是这个吗?

    <!DOCTYPE html>
    <html>
    <head>
    <!-- <img class="image-t" src="../Documents/square.jpg" width="300" height="175" align="top" > -->
    
    
       </head>
        <style>
            main {
        
      background-color: #1e1f1f;
      display: inline-block;
      padding: 25px;
      font-size: 1.4rem;
    font-family: Arial, Helvetica, sans-serif;
    }
    .image-top{
        height: 50vh;
        background-image: url('https://www.hackingwithswift.com/uploads/matrix.jpg');
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: cover;
    }
    #myInput {
    
      padding: 0;
      margin: 0;
      border: none;
      width: 100%;
      display: block;
      font-size: 1.4rem;
         text-align: center;
        
    }
    #myInput:focus {
      outline:none;
         text-align: center;
    }
    header label {
      display:block;
         text-align: center;
    }
    header strong {
      box-sizing: border-box;
      display: block;
      padding: 15px 8px;
      margin-bottom: 15px;
      background: white;
      width: 100%;
      text-align: center;
        
      
    }
    
    main>div>div,
    header div {
      padding: 15px 18px;
      background: white;
        margin-bottom: 65px;
    }
    
    main>div>div {
      margin: 25px 0;
      padding: 15px 8px;
    }
    
    main>div>div>strong {
      display: inline-block;
      text-align:center;
    }
    
    output {
      display: inline-block;
      float: right;
      text-align: right;
      min-width: 10em;
    }
    output::before {
      content: '£';
    }
    output::after {
      clear: both;
      content: '';
    }
        </style>
        <script src="/scripts/snippet-javascript-console.min.js?v=1"></script>
    <body>
        <div class="image-top">
    <p>img</p>
        </div>
        <main>
      <header>
        <label>
          <strong>Enter NHS Price Below</strong>
            <div>
              <input id="myInput"/>
            </div>
        </label>
      </header>
      <div>
        <div>
          <strong>Retail:</strong>
          <output id="output1" />
        </div>
        <div>
          <strong>Schools &amp; CDC's:</strong>
          <output id="output2" />
        </div>
        <div>
          <strong>Trade - Band A:</strong>
          <output id="output3" />
        </div>
        <div>
          <strong>Trade - Band B:</strong>
          <output id="output4" />
        </div>
        <div>
          <strong>Trade - Band C:</strong>
          <output id="output5" />
        </div>
        <div>
          <strong>Trade - Band D:</strong>
          <output id="output6" />
        </div>
      </div>
    </main>
        <script type="text/javascript">
            function byId(id) {
      return document.getElementById(id)
    }
    window.addEventListener('load', onLoaded, false);
    
    function onLoaded(evt) {
      let input = byId('myInput');
      input.addEventListener('input', onInputReceived, false);
    }
    
    function onInputReceived(evt) {
      let outputs = [byId('output1'), byId('output2'), byId('output3'), byId('output4'), byId('output5'), byId('output6')];
      let value = parseFloat(this.value);
      if (!isNaN(value)) {
        outputs[0].textContent = Math.ceil(value / 0.7);
        outputs[1].textContent = Math.ceil(value * 1);
        outputs[2].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 40));
        outputs[3].textContent = Math.ceil(value * 1);
        outputs[4].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 20));
        outputs[5].textContent = Math.ceil(value / 0.7 - (value / 0.7 / 100 * 10));
      } else {
        outputs[0].textContent =
          outputs[1].textContent =
          outputs[2].textContent =
          outputs[3].textContent =
          outputs[4].textContent =
          outputs[5].textContent = "*Please Enter a Number*";
      }
    }
        </script>
    </body>
    </html>

    【讨论】:

    • 我已经做了我想做的,我只需要居中就可以了
    • 我刚刚编辑了代码,如果你看一下,也许给我一些关于如何将它与文本对齐到中心的输入?
    • @Lewis 您可以将style="text-align: center;" 添加到您的header 标签中。它将图像与中心对齐
    【解决方案4】:

    要将某物移到某物上方,请使用position: relativeposition: absolute,并在其后添加z-index 高于元素。

    例如:

    <!DOCTYPE html>
    <html>
    
    <head>
      <style>
        img {
          position: absolute;
          left: 10px;
          top: 10px;
          z-index: 1;
        }
      </style>
    </head>
    
    <body>
    
      <img src="https://via.placeholder.com/150">
    
      <p>Text after image Text after image Text after image Text after image Text after image Text after image Text after image</p>
    
    </body>
    
    </html>

    如果这不是你的问题,对不起,我没有正确理解:)

    【讨论】:

    • 我明白了,但它不仅仅是重叠而不是超越,我不确定我是否做错了什么?
    猜你喜欢
    • 1970-01-01
    • 2013-06-27
    • 2010-09-18
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    相关资源
    最近更新 更多