背景图像占据整个屏幕

时间:2016-09-23 19:13:18

标签: javascript android html css ionic-framework

我做了我的研究,似乎无法得到任何工作。这是我的HTML:

<body ng-app="starter">
    <ion-pane>
    <head>
    </head>
      <ion-content>
      		<body>
      			<img src="resources/img.png">
      		</body>
      </ion-content>
    </ion-pane>
</body>

我的图片显示但不是全屏。它也切断了一点点。因此,我需要图像占据整个屏幕,不会重复,也不会丢失图像中的任何内容。让任何人帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

这是渲染后的HTML,还是来自编辑器?

  • 如果您能够向我们展示您的应用页面的打印屏幕,并且浏览器呈现之后的HTML ,我们将不胜感激! / p>

    - 这个应用程序是否会以某种固定的分辨率/屏幕运行?如果没有,我不认为将裁剪的图像放到屏幕上是一个很好的解决方案,因为有很多其他屏幕具有不同的分辨率,如果你想要一个背景来覆盖它们,那么它肯定会在某些分辨率/屏幕上被裁剪。

考虑到这一点,您可以选择为任何类型的屏幕/分辨率创建完整尺寸的背景。

只需两个CSS规则,您就可以创建一个始终位于某个屏幕上的居中背景,无论它有多大,图像有多小:

.app-background {
    position: fixed;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    overflow: hidden;
    z-index: -1;
}

.app-background > img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    min-width: 50%;
    min-height: 50%;
}

.app-background 将成为后台的包装器,并具有:

- position:fixed; 以保持其位置,以防其中一个父元素具有水平/垂直滚动条,并且不占用空间用于页面内容;

- top / left:-50%;宽度/高度:200%; 使其居中并使其大小为其父/屏幕的两倍; (现在您的图片有一个可以居中的父级);

- 溢出:隐藏; z-index:-1; 只是为了裁剪里面的图像并确保页面的内容不会隐藏在背景之后;

.app-background&gt; img 将作为背景的图像,并将具有:

- 位置:绝对;上/右/下/左:0; margin:auto; 将图像水平和垂直居中于 .app-background ;

- min-width / min-height:50% ,以防止图片小于容器分辨率/屏幕尺寸的100%。

概念(在全屏中查看)

&#13;
&#13;
html, body {
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
}

.app-background {
  position: fixed;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  overflow: hidden;
  z-index: -1;
}

.app-background > img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  min-width: 50%;
  min-height: 50%;
}


/* Instructions below this comment are NOT needed for the solution */
body {
  font-family: Calibri, Arial;
  text-align: center;  
}

body:before {
  content: '';
  height: 100%;
  display: inline-block;
  vertical-align: middle;
  margin-left: -0.25em;
}

*, .border-box {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.app-container {
  position: relative;
  border: 2px solid red;
  color: red;
  display: inline-block;
  vertical-align: middle;
  width: 40%;
  height: 40%;
}

.app-background {
  position: absolute;
  border: 2px solid purple;
  color: purple;
}

.app-container:before,
.app-background:before {
  content: '.app-background';
  font-size: 25px;
  display: block;
  padding-bottom: 10px;
}

.app-container:before {
  content: '.app-container';
}

.app-background > img {
  opacity: 0.5;
  z-index: -1;
}
&#13;
<div class="app-container">
  <b>This red box is what you will see in your screen.</b>
  
  <div class="app-background">
    This purple box is where your image will be centered and cropped.
    
    <img src="https://static.vecteezy.com/system/resources/previews/000/094/491/original/polygonal-texture-background-vector.jpg">
    
    <b>Feel free to zoom-in/out your browser to see the effect from different resolutions!</b>
  </div>
</div>
&#13;
&#13;
&#13;

请点击整页按钮

解决方案(在全屏中查看)

&#13;
&#13;
html, body {
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
}

body > ion-pane,
body > ion-pane > ion-content {
  width: 100%;
  height: 100%;
}

.app-background {
  position: fixed;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  overflow: hidden;
  z-index: -1;
}

.app-background > img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  min-width: 50%;
  min-height: 50%;
}
&#13;
<body ng-app="starter">
  <ion-pane>
    <head>
    </head>
    <ion-content>
      <body>
        <div class="app-background">
          <img src="https://static.vecteezy.com/system/resources/previews/000/094/491/original/polygonal-texture-background-vector.jpg">
        </div>
      </body>
    </ion-content>
  </ion-pane>
</body>
&#13;
&#13;
&#13;

请点击整页按钮

答案 1 :(得分:1)

我们走了:

复制此代码&amp;包含在您的项目中,这将起作用:

html { 
  background: url(resources/img.png) no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

以下是DEMO:enter link description here

答案 2 :(得分:0)

您可以使用cssimg或其他元素width设置为100vw,将height设置为100vh

img {
  background: sienna;
  width: 100vw;
  height: 100vh;
}
<img>