2017-02-13 6 views
1

Я возился с html и css, пытаясь узнать кое-что.Дополнительный ящик появляется под контейнером при зависании

Прежде чем двигаться дальше, здесь jfiddle, что показывает проблему (в ее принципе).

В настоящее время у меня есть это:

<!doctype html> 
<html> 

<head> 
    <meta charset="UTF-8"> 
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200" rel="stylesheet"> 
    <link rel=stylesheet type="text/css" href="css/index.css"> 

</head> 

<body> 

    <div class="logo"> 
     <a> 
      <img src="images/LogoWhiteSmall.png" alt="Hardnose Logo" target="_blank"> 
     </a> 
    </div> 
    <div class="message">Swimming your way</div> 

</body> 

</html> 

и это код CSS (на самом деле SCSS, жаль об этом):

@import 'fontsAndColors'; 

/* Setting frame */ 

* { 
    height: 100%; 
    width: 100%; 
    margin: 0; 
    font-family: $main_font; 
} 

body { 
    background: $hn_green; 
    /* For browsers that do not support gradients */ 
    background: -webkit-linear-gradient(left top, $hn_green, $hn_blue); 
    /* For Safari 5.1 to 6.0 */ 
    background: -o-linear-gradient(bottom right, $hn_green, $hn_blue); 
    /* For Opera 11.1 to 12.0 */ 
    background: -moz-linear-gradient(bottom right, $hn_green, $hn_blue); 
    /* For Firefox 3.6 to 15 */ 
    background: linear-gradient(to bottom right, $hn_green, $hn_blue); 
    /* Standard syntax (must be last) */ 
} 

img { 
    height: auto; 
    width: auto; 
    margin: auto; 
    left: 0; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    position: absolute; 
    opacity: 0.2; 
    z-index: 1; 
} 

.logo { 
    display: inline-block; 
    height: auto; 
    width: auto; 
    margin: auto; 
    :hover { 
     height: auto; 
     width: auto; 
     opacity: 1.0; 
     -webkit-transform: scale(1.1); 
     -ms-transform: scale(1.1); 
     transform: scale(1.1); 
     transition: all 0.5s ease; 
    } 
} 

.message { 
    font-size: .8em; 
    text-align: center; 
    color: $hn_white; 
    height: auto; 
    width: auto; 
    position: absolute; 
    bottom: 45%; 
    left: 0; 
    right: 0; 
    opacity: .2; 
} 

Теперь проблема заключается в следующем: когда я наведите изображение, я просто хочу, чтобы он выскочил. Это все работает. Тем не менее, во время зависания, я, кажется, создаю небольшой раздел окна под ним. Таким образом, при наведении логотипа полоса прокрутки показывает, что я могу немного прокрутить (см. Рисунок), пока я не мог. Любые идеи, что вызывает это?

Problem Спасибо!

+0

Вы лучше предоставить нам экземпляр на jsfiddle. –

+0

Это немного менее ясно в jsfiddle, но вы можете увидеть небольшой участок, где градиент «перезапускается» ниже: [jsfiddle] (https://jsfiddle.net/01poLwam/1/) Я изменил градиент, чтобы сделать его более Чисто. Это маленький серый бар внизу, который меня заводит. – Inkidu616

+0

Возможно, вы не исправили ошибки, о которых упоминалось. Для меня это хорошо работает http://joxi.ru/nAyxpzkfY9BbG2 –

ответ

1

Попробуйте добавить overflow: hidden; к body элементу, или любой другой элемент контейнера будет. Это решило проблему в вашем JSFiddle для меня.

+0

ДА! Добавление его в контейнер .logo исправил его для меня. Всем спасибо! – Inkidu616

+1

) это нехорошее решение. Потому что вы отключите прокрутку навсегда для тела. Попробуйте добавить контент, и вы увидите, что произойдет. –

+0

Я получаю то, что вы говорите. В этом случае эта страница никогда не будет больше, чем портал на реальной главной странице, так что это соответствует моим потребностям. Спасибо за ввод, хотя. – Inkidu616

1

Первая ошибка http://joxi.ru/EA4zdNWIwXz0Gm Вторая - добавьте здесь vertical-align: top; http://joxi.ru/DmBLgXyuwqO6yA

https://jsfiddle.net/01poLwam/2/

<div class="logo"> 
     <a> 
      <img src="http://images.clipartbro.com/33/smiley-face-symbols-33397.png" alt="Hardnose Logo" target="_blank"> 
     </a> 
    </div> 

* { 
    height: 100%; 
    width: 100%; 
    margin: 0; 
    font-family: "Source Sans Pro", sans-serif; } 

/* line 28, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
body { 
    background: #aaa; 
    /* For browsers that do not support gradients */ 
    background: -webkit-linear-gradient(left top, #aaa, #000); 
    /* For Safari 5.1 to 6.0 */ 
    background: -o-linear-gradient(bottom right, #aaa, #000); 
    /* For Opera 11.1 to 12.0 */ 
    background: -moz-linear-gradient(bottom right, #aaa, #000); 
    /* For Firefox 3.6 to 15 */ 
    background: linear-gradient(to bottom right, #aaa, #000); 
    /* Standard syntax (must be last) */ } 

/* line 41, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
img { 
    height: 50%; 
    width: 50%; 
    margin: auto; 
    left: 0; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    position: absolute; 
    opacity: 0.2; 
    z-index: 1; } 

/* line 54, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
.logo { 
    display: inline-block; 
    margin: auto; 
    vertical-align: top; 
    } 
    /* line 59, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
    .logo:hover { 
    opacity: 1.0; 
    -webkit-transform: scale(1.1); 
    -ms-transform: scale(1.1); 
    transform: scale(1.1); 
    transition: all 0.5s ease; } 

/* line 70, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
.message { 
    font-size: .8em; 
    text-align: center; 
    color: #ffffff; 
    height: auto; 
    width: auto; 
    position: absolute; 
    bottom: 45%; 
    left: 0; 
    right: 0; 
    opacity: .2; } 
+0

Спасибо за ваш ответ! Я заметил, что на самом деле я скопировал свой код SCSS, поэтому, если это то, что вы имеете в виду, это, вероятно, не ошибка (первая). Что касается второй ошибки, о которой вы говорили, проблема еще не исправлена ​​(она на самом деле выглядит хуже в вашем jfiddle). Если вы наведете смайлик и прокрутите, вы увидите большой раздел под ним:/ – Inkidu616

+0

Вы серьезно? Проверьте его снова https://jsfiddle.net/01poLwam/2/. Он должен работать должным образом. –

+0

Yup, извините, чувак. Это скриншот того, что я вижу на вашем jfiddle, когда я нависаю и прокручиваю вниз. http://imgur.com/hBRN4Z7 – Inkidu616

0

Большая проблема была относительно img элемента:


1) img определил размер страницы, так как уточнили правила CSS это
2) когда .logo:hover была активирована, она затрагивает размер img, что отразилось на SizeOf страницу (появляется дополнительная высота => вертикальная полоса прокрутки)



Я решил проблему так:
1) правила CSS для img были перемещены к родителю, правила a элемента
2) CSS для .logo:hover были обновлены так, что функция scale(1.1) влияет только это ребенок, img



Внешняя демо: https://jsfiddle.net/01poLwam/4/



* { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0; 
 
    font-family: "Source Sans Pro", sans-serif; } 
 

 
/* line 28, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
 
body { 
 
    background: #aaa; 
 
    /* For browsers that do not support gradients */ 
 
    background: -webkit-linear-gradient(left top, #aaa, #000); 
 
    /* For Safari 5.1 to 6.0 */ 
 
    background: -o-linear-gradient(bottom right, #aaa, #000); 
 
    /* For Opera 11.1 to 12.0 */ 
 
    background: -moz-linear-gradient(bottom right, #aaa, #000); 
 
    /* For Firefox 3.6 to 15 */ 
 
    background: linear-gradient(to bottom right, #aaa, #000); 
 
    /* Standard syntax (must be last) */ } 
 

 
/* line 41, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
 
a { 
 
    display: block; 
 
    height: 50%; 
 
    width: 50%; 
 
    margin: auto; 
 
    left: 0; 
 
    top: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    position: absolute; 
 
    opacity: 0.2; 
 
    z-index: 1; } 
 

 
/* line 54, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
 
.logo { 
 
    display: inline-block; 
 
    margin: auto; } 
 
    /* line 59, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
 
    .logo :hover img{ 
 
    opacity: 1.0; 
 
    -webkit-transform: scale(1.1); 
 
    -ms-transform: scale(1.1); 
 
    transform: scale(1.1); 
 
    transition: all 0.5s ease; } 
 

 
/* line 70, /Users/Inkidu/Documents/Hardnose/Website/v2.0/css/index.scss */ 
 
.message { 
 
    font-size: .8em; 
 
    text-align: center; 
 
    color: #ffffff; 
 
    height: auto; 
 
    width: auto; 
 
    position: absolute; 
 
    bottom: 45%; 
 
    left: 0; 
 
    right: 0; 
 
    opacity: .2; }
<div class="logo"> 
 
     <a> 
 
      <img src="http://images.clipartbro.com/33/smiley-face-symbols-33397.png" alt="Hardnose Logo" target="_blank"> 
 
     </a> 
 
    </div>