Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 24

0
votes
answers
33 views
+10

是否有可能使用固定小孩的父容器溢出?

2

我有一個父母與自動身高(例如我添加高度300px測試pupose)和子元素的位置:固定。即使孩子有固定位置,只要孩子可以伸展父母元素嗎?是否有可能使用固定小孩的父容器溢出?

<div class="parent"> 
    <div class="fixed"></div> 
</div> 

.fixed { 
    position: fixed; 
    height: 750px; 
    width: 100%; 
    background: red; 
    opacity: 0.5; 
    margin: auto; 
} 

.parent { 
    height: 300px; 
    background: yellow; 
} 

例這裏 https://jsfiddle.net/hz0wgx1w/

+0

拉伸取決於孩子的內容? –

+1

當你使用position:fixed時,你從html流中獲取元素。這意味着它不管是孩子,兄弟姐妹還是父母都無關緊要。所以,總之,不,這是不可能的。 –

+0

你可以使用jQuery,這是可能的。 – Sonia

沙发
0
0

我不能想辦法單獨用CSS來做到這一點,但這裏使用jQuery來更新CSS實例以便父母的高度和寬度匹配孩子的:

https://jsfiddle.net/hz0wgx1w/13/

請記住,與孩子固定的,它不會與母公司同步滾動,所以這隻能設置其初始大小相匹配。它不能確保他們的位置在滾動時會繼續匹配。

這也沒有考慮到響應性,所以在頁面加載後對子頁面寬度的任何更改都不會導致父頁面更新,但根據您的目標,也可以使用jQuery輕鬆完成。

我保存了您的HTML,但如果您打算在其他元素上重用這些類,則使用不同的ID而不是類會更安全。

$(".parent").css("height", $(".fixed").css("height")); 
 
$(".parent").css("width", $(".fixed").css("width"));
.fixed { 
 
    position: fixed; 
 
    height: 750px; 
 
    width: 100%; 
 
    background: red; 
 
    opacity: 0.5; 
 
    margin: auto; 
 
} 
 

 
.parent { 
 
    height: 300px; 
 
    background: yellow; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="parent"> 
 
    <div class="fixed"></div> 
 
</div>

0
votes
answers
38 views
+10

如何解決在某些瀏覽器上而不是在其他頁面上懸浮在頁面頂部的標題?

-1

當我在瀏覽器中查看www.kentkercher.com時,一切看起來很正常。如何解決在某些瀏覽器上而不是在其他頁面上懸浮在頁面頂部的標題?

但是,當我在GeoPeeker中檢查它時,H1漂浮在頁面的頂部。

我在Chrome Inspect中找不到問題。有人可以幫助我知道如何解決這個問題。

沙发
0
0

只要有加入這個CSS,它會解決這個問題::

.my-auto { 
position: absolute; 
    top: 50%; 
    left: 0; 
    width: 100%; 
} 
+0

的感謝!修復。在未來的情況下學到新的東西,以防再次出現。 –

+0

歡迎!!!!!!!!!! – Sonia

0
votes
answers
60 views
+10

100%寬度與html頁面上的變化

-1

我有一個頁面,我想要100%全寬,但是當我使用100vh命令時,我會看到以下內容: 使用的代碼:height:100hv; http://s8.picofile.com/file/8312677942/100hv.png 而當我不使用任何命令時,我會面對這個問題: 使用的代碼:height:auto; http://s8.picofile.com/file/8312677968/auto.png 當我不使用任何代碼和元素的數量很高,將不會有任何問題 使用的代碼:height:auto; http://s9.picofile.com/file/8312677918/good.png 但我沒有這個問題,當頁面上的元素太低。如果有解決方案,請指導我。100%寬度與html頁面上的變化

+0

請分享代碼,以獲得最佳的答案。順便說一句,你可以使用'width:100vw'來製作一個與視口寬度一樣寬的元素。 –

+0

我在頁面上使用了很多文件,例如javascript和css,所以我很難放置代碼。 不,我的意思是,我用您的代碼測試了程序,並且我發現當文件較低時,它可以正常工作,這對我的代碼來說是不可能的。現在再次出現的字段數量會發現100hv問題。 – mostafa

沙发
0
1

它是100vh而不是100hv。我想你要的是窗戶的完整「高度」,而不是全寬。

編輯

你必須把在你的CSS:

height: auto; 
max-height: 100vh; 
overflow-y: auto; 
+0

如果你的意思是代碼,我已經測試過這段代碼,這對我來說是一個問題,如果這不是你的,請使用代碼來使用它。非常感謝。 – mostafa

+0

它不是100hv,它是100vh,最後兩個字母是反轉的 – Ciro

+0

我不知道是否有可能讓我有一種Java編程語言,如果元素數量太高,例如7的元素數量爲自動寬度,元素數少於7,寬度爲100. ?? – mostafa

0
votes
answers
33 views
+10

質樸Flexbox的高度

0

這是一個非常簡單的結構,我可以不使用Flexbox的實現。質樸Flexbox的高度

我有一個報頭和主體我有一個長(高)元件內的主體元件和後,我有身體內的小頁腳。我希望內容可以滾動並且頁腳始終可見。

我將所有的東西都設置爲使用flexbox,我使用flex-direction: column來實現垂直定位,以及flex: 1使用高度未定義的元素佔據剩餘空間。

奇怪的是,我固定高度爲50像素的標頭只有20像素高,內容根本不可滾動,或者更確切地說,它與小小的頁腳(綠色)並不是我想要的。 ..

DEMO HERE

.flex { display: flex; } 
 
.flex1 { flex: 1; } 
 
.col { flex-direction: column; } 
 
.red { background-color: red; } 
 
.blue { background-color: blue; } 
 
.green { background-color: green; } 
 
.yellow { background-color: yellow; } 
 
.pad { padding: 10px 15px; } 
 
.h50 { height: 50px; }
<div class="flex col" style="height: 100vh;"> 
 
    <div class="red h50"> 
 
    Wtf? 
 
    </div> 
 
    <div class="blue flex1 pad"> 
 
    <div class="flex col" style="height: 100%"> 
 
     <div class="yellow flex1" style="overflow: auto;"> 
 
     <div style="height: 1500px"> 
 
      Long content here 
 
     </div> 
 
     </div> 
 
     <div class="green h50"> 
 
     
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

沙发
0
1

使用高度與%的內部元素結合Flexbox,就不是一個好主意,因爲它會產生問題跨瀏覽器。

使用Flexbox的一路,這裏通過更新這兩個要素類,在這裏我刪除height: 100%並添加flexblue所以它的孩子將填補其母公司的高度,並flex1孩子,因此將填補其母公司的寬度。

<div class="blue flex1 pad flex"> 
    <div class="flex flex1 col"> 

還增加margin: 0body

棧片斷

body { margin: 0; } 
 
.flex { display: flex; } 
 
.flex1 { flex: 1; } 
 
.col { flex-direction: column; } 
 
.red { background-color: red; } 
 
.blue { background-color: blue; } 
 
.green { background-color: green; } 
 
.yellow { background-color: yellow; } 
 
.pad { padding: 10px 15px; } 
 
.h50 { height: 50px; }
<div class="flex col" style="height: 100vh;"> 
 
    <div class="red h50"> 
 
    Wtf? 
 
    </div> 
 
    <div class="blue flex1 pad flex"> 
 
    <div class="flex flex1 col"> 
 
     <div class="yellow flex1" style="overflow: auto;"> 
 
     <div style="height: 1500px"> 
 
      Long content here 
 
     </div> 
 
     </div> 
 
     <div class="green h50"> 
 
     
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>


更新根據COMME NT,其中火狐似乎需要min-height: 0blue元素。

對於Flex項目,其默認min-height/width值爲auto,它阻止他們低於其內容的尺寸縮小,所以更改爲0解決了。

棧片斷

body { margin: 0; } 
 
.flex { display: flex; } 
 
.flex1 { flex: 1; } 
 
.col { flex-direction: column; } 
 
.red { background-color: red; } 
 
.blue { background-color: blue; } 
 
.green { background-color: green; } 
 
.yellow { background-color: yellow; } 
 
.pad { padding: 10px 15px; } 
 
.h50 { height: 50px; } 
 
.mh { min-height: 0; }
<div class="flex col" style="height: 100vh;"> 
 
    <div class="red h50"> 
 
    Wtf? 
 
    </div> 
 
    <div class="blue flex1 pad flex mh"> 
 
    <div class="flex flex1 col"> 
 
     <div class="yellow flex1" style="overflow: auto;"> 
 
     <div style="height: 1500px"> 
 
      Long content here 
 
     </div> 
 
     </div> 
 
     <div class="green h50"> 
 
     
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

它仍然是同樣的結果,一切都是滾動的頁眉和頁腳應該是靜態的,只有黃色區域應該是滾動 –

+0

@php_nub_qq在上面的代碼片段在視口中的黃色滾動(正在使用Chrome的BTW),所以它是如何同你? – LGSon

+0

哦,所以這是一個瀏覽器的問題,我使用的Firefox ...而且在鉻是一樣的,沒有工作..耶穌 –

5
votes
answers
28 views
+10

With CSS, use “…” for overflowed block of multi-lines

with

overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

"..." will be shown in the end of the line if overflowed. However, this will be shown only in one line. But I would like it to be shown in multi-lines.

It may looks like:

+--------------------+
|abcde feg hij   dkjd|
|dsji jdia js ajid  s|
|jdis ajid dheu d ...|/*Here it's overflowed, so "..." is shown. */
+--------------------+
沙发
+30

這裡有很多答案,但我需要的是:

  • 僅限CSS
  • 面向未來(與時間更加兼容)
  • 不會破壞單詞(只在空格上打破)

需要注意的是,它不為不支持該-webkit-line-clamp規則的瀏覽器(目前是IE,Edge,Firefox)提供省略號,但它確實使用漸變來淡出其文本。

.clampMe {
  position: relative;
  height: 2.4em; 
  overflow: hidden;
}

.clampMe:after {
  content: "";
  text-align: right;
  position: absolute;
  bottom: 0;
  right: 0;
  width: 50%;
  height: 1.2em; /* Just use multiples of the line-height */
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 80%);
}

/* Now add in code for the browsers that support -webkit-line-clamp and overwrite the non-supportive stuff */
@supports (-webkit-line-clamp: 2) {
  .clampMe {
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
  }
  
  .clampMe:after {
    display: none;
  }
}
<p class="clampMe">There's a lot more text in here than what you'll ever see. Pellentesque habitant testalotish morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>

你可以在這個CodePen中看到它的運行情況,你也可以在這裡看到一個Javascript版本(沒有jQuery)。

板凳
+20

JavaScript解決方案會更好

  • 獲取文本的行數
  • is-ellipsis如果窗口調整大小或元素更改,則切換

getRowRects

Element.getClientRects()這樣工作

在此輸入圖像描述

同一行中的每個rects具有相同的top值,因此找出具有不同top的rects ,如下所示

在此輸入圖像描述

function getRowRects(element) {
    var rects = [],
        clientRects = element.getClientRects(),
        len = clientRects.length,
        clientRect, top, rectsLen, rect, i;

    for(i=0; i<len; i++) {
        has = false;
        rectsLen = rects.length;
        clientRect = clientRects[i];
        top = clientRect.top;
        while(rectsLen--) {
            rect = rects[rectsLen];
            if (rect.top == top) {
                has = true;
                break;
            }
        }
        if(has) {
            rect.right = rect.right > clientRect.right ? rect.right : clientRect.right;
            rect.width = rect.right - rect.left;
        }
        else {
            rects.push({
                top: clientRect.top,
                right: clientRect.right,
                bottom: clientRect.bottom,
                left: clientRect.left,
                width: clientRect.width,
                height: clientRect.height
            });
        }
    }
    return rects;
}

浮動 ...more

這樣

在此輸入圖像描述

檢測窗口調整大小或元素已更改

這樣

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

地板
0
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical; 

看到更多點擊這裡

0
votes
answers
24 views
+10

如何放置鏈接

1

我有一個背景圖像,表明後「打開遠程URL」的形象,點擊一個URL時,用戶會離開網站: {background-image:url('/static/image/open_new.svg')}如何放置鏈接

open_new.svg是24×24

我的鏈接使用<ol><li>進行格式化。

我想放置鏈接後的背景圖像;和我的鏈接有不同的長度。

懸停,鏈接結束這個CSS步驟:

ol li.external a {background:no-repeat; background-position: left 100% center; }

ol li.external:hover a {background-image:url('/static/image/open_new.svg')}

這個CSS打開<li>和鏈路之間的空間,並公開在背景圖片懸停在開放的空間:

ol li.external a {background:no-repeat; background-position: left 100% center; padding:30px; }

ol li.external:hover a {background-image:url('/static/image/open_new.svg')}

什麼樣的CSS會將background-image幾個像素放在可變長度鏈接的右邊?

沙发
0
1

將CSS :after與CSS :hover結合使用可以將圖像添加到鼠標懸停的元素上。然後,您可以輕鬆調整圖像大小和左邊距。參見:

https://codepen.io/NikxDa/pen/XzMGNX

0
votes
answers
56 views
+10

受半透明疊加

-1

CSS邊界不透明度我有這樣的項目:受半透明疊加

https://jsfiddle.net/3xw9aqew/ 

當用戶將鼠標懸停在灰色框,紅色覆蓋帶有綠色邊框/輪廓。但是,此邊框將應用於在懸停時應用不透明度值的疊加層。

.image-container:hover .overlay { 
      opacity: 0.3; 
     } 

我想覆蓋到是半透明的,允許下面的圖片可以看到,但我想解決這個邊界是固體所以其標準的「綠」色。這是覆蓋的CSS:

.overlay { 
      position: absolute; 
      top: 0; 
      bottom: 0; 
      left: 0; 
      right: 0; 
      height: 100%; 
      width: 100%; 
      opacity: 0; 
      transition: .5s ease; 
      background-color: red; 
      border:10px solid green; 
      box-sizing:border-box; 
     } 

我該如何做到這一點?

沙发
0
0

對於預期的行爲,將所需透明度直接應用於background-color屬性值,而不是整個包含元素。這可以通過調整rgba的值來完成,如下面的嵌入代碼片段所示。

opacity應用於元素作爲一個整體,包括它的內容,即使該值不是由子元素繼承 。因此, 元素及其子元素相對於 元素的背景都具有相同的不透明度,即使它們相對於彼此具有不同的不透明度相對 也是如此。

opacity - CSS | MDN

.overlay { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    height: 100%; 
    width: 100%; 
    opacity: 1; 
    transition: .5s ease; 
    background-color: transparent; 
    border: 10px solid transparent; 
    box-sizing: border-box; 
} 

.image-container:hover .overlay { 
    background-color: rgba(255, 0, 0, 0.3); 
    border: 10px solid green; 
} 

Updated JSFiddle

代碼片段演示:

var imgContainer = document.getElementById("imgContainer"); 
 
var lorem = document.querySelector(".hdr-left"); 
 
var ipsum = document.querySelector(".hdr-right"); 
 

 
//When clicking on imgContainer toggle between class to change colour and position 
 
imgContainer.addEventListener('click', function() { 
 
    lorem.classList.toggle("hdr-color-white"); 
 
    ipsum.classList.toggle("hdr-color-white"); 
 
    lorem.classList.toggle('hdr-left-middle'); 
 
    ipsum.classList.toggle('hdr-right-middle'); 
 
});
body { 
 
    max-width: 100%; 
 
    overflow-x: hidden; 
 
    background: yellow; 
 
    font-family: sans-serif; 
 
} 
 

 
.container { 
 
    width: 85%; 
 
    max-width: 700px; 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
} 
 

 
img { 
 
    width: 100%; 
 
    max-width: 920px; 
 
} 
 

 
p { 
 
    font-size: 18px; 
 
    color: blue; 
 
    font-weight: bold 
 
} 
 

 
p.left { 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0px; 
 
    right: -32%; 
 
    transform: rotate(-90deg); 
 
} 
 

 
p.right { 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: -32%; 
 
    transform: rotate(90deg); 
 
} 
 

 
h2 { 
 
    font-size: 5em; 
 
    position: absolute; 
 
    text-transform: uppercase; 
 
    letter-spacing: 2px; 
 
    font-weight: bold; 
 
    margin: 0; 
 
    z-index: 5; 
 
    color: blue; 
 
    transition: all 0.5s ease-in-out; 
 
} 
 

 
.hdr-color-white { 
 
    color: white; 
 
} 
 

 
.hdr-left { 
 
    left: -12%; 
 
    top: -35%; 
 
} 
 

 
.hdr-left-middle { 
 
    left: 7%; 
 
    top: 40%; 
 
} 
 

 
.hdr-right { 
 
    right: -10%; 
 
    top: 110%; 
 
} 
 

 
.hdr-right-middle { 
 
    right: 7%; 
 
    top: 40%; 
 
} 
 

 

 
/*Hovers*/ 
 

 
.container:hover { 
 
    cursor: pointer 
 
} 
 

 
.container:hover>p { 
 
    color: red; 
 
} 
 

 
.container .image-container:hover {} 
 

 

 
/*Hovers Ends*/ 
 

 

 
/*Overlay*/ 
 

 
.image-container { 
 
    position: relative; 
 
    width: 100%; 
 
    padding: 10px; 
 
    box-sizing: border-box; 
 
} 
 

 
.image { 
 
    display: block; 
 
    width: 100%; 
 
    height: auto; 
 
    outline: 5px solid blue; 
 
} 
 

 
.container .image-container:hover>.image { 
 
    outline: none; 
 
} 
 

 
.overlay { 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
    right: 0; 
 
    height: 100%; 
 
    width: 100%; 
 
    opacity: 1; 
 
    transition: .5s ease; 
 
    background-color: transparent; 
 
    border: 10px solid transparent; 
 
    box-sizing: border-box; 
 
} 
 

 
.image-container:hover .overlay { 
 
    background-color: rgba(255, 0, 0, 0.3); 
 
    border: 10px solid green; 
 
} 
 

 

 
/*Overlay Ends*/
<div class="container"> 
 

 
    <!--Rotated Text--> 
 
    <p class="right">Harolds</p> 
 
    <p class="left">Harolds</p> 
 
    <!--//Rotated Text--> 
 

 
    <h2 class="hdr-left hdr-color" id="lorem">Lorem</h2> 
 

 
    <div class="image-container" id="imgContainer"> 
 
    <img src="http://via.placeholder.com/980x550" alt="gucci" class="image"> 
 
    <!--colour overlay--> 
 
    <div class="overlay"></div> 
 
    <!--//colour overlay--> 
 
    </div> 
 

 
    <h2 class="hdr-right hdr-color" id="ipsum">Ipsum</h2> 
 

 
</div>

0
votes
answers
42 views
+10

滑塊跳過一個幻燈片,同時單擊下一步/ prev

1

我有兩個挑戰來構建我自己的旋轉木馬。滑塊跳過一個幻燈片,同時單擊下一步/ prev

1當你點擊下一個或上一個按鈕(在我的情況下,它是黑匣子),它跳過一張幻燈片。

請檢查此琴:https://fiddle.jshell.net/k1ea93xt/3/

簡單地說,當您單擊下一步或只上一個,它的作品不錯,但是當你改變了主意,打在了對方一個時,會出現問題。

一般來說,我想我知道是什麼原因。我添加類「走出去」到下一個滑塊來啓動動畫

$('.nxt').addClass('out'); 

和「」 - 顛倒動畫以前滑塊

$('.prv').addClass('in'); 

兩個「中」和「out」留在當前滑塊銷燬translateX值。

2第二個問題是我通過改變類NXT,PRV和電流改變滑塊(我的js技能是有限的)

$('.nxt').addClass('out'); 
$('.current').removeClass('out'); 
$('.prv').removeClass('out'); 

$('.t1').removeClass('current'); 
$('.t2').removeClass('nxt'); 
$('.t3').removeClass('prv'); 

$('.t1').addClass('prv'); 
$('.t2').addClass('current'); 
$('.t3').addClass('nxt'); 

$('.current').removeClass('t2'); 
$('.prv').removeClass('t1'); 
$('.nxt').removeClass('t3'); 

$('.current').addClass('t1'); 
$('.nxt').addClass('t2'); 
$('.prv').addClass('t3'); 

$('.t1').removeClass('in'); 
$('.t2').removeClass('in'); 
$('.t3').removeClass('in'); 

問題是我不能在傳送帶超過3張幻燈片。有沒有簡單的方法來自動分配類的當前,prv和nxt? Thx提前。

+0

我會很高興,甚至檢測主滑塊中的下一個和上一個div – Lukas

沙发
0
1

我更新了你的jQuery,並創建了一個函數來查找下一張和上一張幻燈片並添加了一些setTimeout()。這將允許您擁有儘可能多的幻燈片。

我也感動了滑蓋的功能查找。主要滑塊中的元素外滑塊按鈕

var interval = undefined; 
 
$(document).ready(function() { 
 
    interval = setInterval(getNext, 1000); // milliseconds 
 
    $('.next').on('click', getNext); 
 
    $('.previous').on('click', getPrev); 
 
}); 
 
//Get next slide 
 
function getNext() { 
 
    var $curr = $('.main-slider .slide.current'), 
 
     $next = ($curr.next().length) ? $curr.next() : $('.main-slider .slide').first(); 
 
    transitionOut($curr, $next); 
 
} 
 

 
// get previous 
 
function getPrev() { 
 
    var $curr = $('.main-slider .slide.current'), 
 
     $next = ($curr.prev().length) ? $curr.prev() : $('.main-slider .slide').last(); 
 
    transitionIn($curr, $next); 
 
} 
 
//slide in 
 
function transitionIn($curr, $next) { 
 
    clearInterval(interval); 
 
     $curr.css('z-index', 0).removeClass('current'); 
 
     $next.show().css('z-index', 1).addClass('in').addClass('current'); 
 
     $next.children().addClass('in'); 
 
      setTimeout(function(){ 
 
      $curr.hide(); 
 
      $next.removeClass('in'); 
 
      $next.children().removeClass('in'); 
 
      },1000) 
 
     
 

 
} 
 
//slide out 
 
function transitionOut($curr, $next) { 
 
    clearInterval(interval); 
 
     $curr.css('z-index', 1).addClass('out').removeClass('current'); 
 
     $next.show().css('z-index', 0).addClass('current'); 
 
     $curr.children().addClass('out'); 
 
     setTimeout(function(){ 
 
      $curr.hide(); 
 
      $curr.removeClass('out'); 
 
      $curr.children().removeClass('out'); 
 
      },1000) 
 
    }
body, html { 
 
    margin:0; 
 
    height:100%; 
 
    } 
 
/*slider*/ 
 
.main-slider { 
 
    height: 100%; 
 
    position: relative; 
 
    margin: 0 auto; 
 
    overflow: hidden; 
 
} 
 
.main-slider .cover { 
 
    object-fit: cover; 
 
    width: 100% !important; 
 
    height: 100%; 
 
    left: 0; 
 
} 
 
.main-slider img { 
 
    top: -9999px; 
 
    bottom: -9999px; 
 
    right: 0; 
 
    margin: auto; 
 
    position: absolute !important; 
 
    display: block; 
 
    float: left; 
 
    text-align: left; 
 
    overflow-x: hidden; 
 
} 
 
.slide { 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
    right: 0; 
 
    height: 100%; 
 
    overflow: hidden; 
 
    display: none; 
 
} 
 

 
.cropped-image{ 
 
    height: 100%; 
 
    margin: 0; 
 
} 
 
.slide.in { 
 
    z-index: 3; 
 
    transform: translateX(-0%); 
 
    -webkit-animation-duration: 1000ms; 
 
    animation-duration: 1000ms; 
 
    animation-name: slide-in; 
 
    -webkit-animation-direction: alternate-reverse; 
 
    -webkit-animation-timing-function: cubic-bezier(.82,0,.19,1); /* Safari 4.0 - 8.0 */ 
 
    animation-timing-function: cubic-bezier(.82,0,.19,1); 
 
} 
 
.cropped-image.in { 
 
    transform: translateX(0%); 
 
    -webkit-animation-duration: 1000ms; 
 
    animation-duration: 1000ms; 
 
    -webkit-animation-name: slide-in-b; 
 
    animation-name: slide-in-b; 
 
    -webkit-animation-direction: alternate-reverse; 
 
    -webkit-animation-timing-function: cubic-bezier(.82,0,.19,1); /* Safari 4.0 - 8.0 */ 
 
    animation-timing-function: cubic-bezier(.82,0,.19,1); 
 

 
} 
 

 
.slide.out { 
 
    transform: translateX(-0%); 
 
    -webkit-animation-duration: 1000ms; 
 
    animation-duration: 1000ms; 
 
    animation-name: slide-in; 
 
    -webkit-animation-direction: alternate; 
 
    -webkit-animation-fill-mode: forwards; 
 
    -webkit-animation-timing-function: cubic-bezier(.82,0,.19,1); /* Safari 4.0 - 8.0 */ 
 
    animation-timing-function: cubic-bezier(.82,0,.19,1); 
 
} 
 
.cropped-image.out { 
 
    transform: translateX(0%); 
 
    -webkit-animation-duration: 1000ms; 
 
    animation-duration: 1000ms; 
 
    -webkit-animation-name: slide-in-b; 
 
    animation-name: slide-in-b; 
 
    -webkit-animation-direction: alternate; 
 
    -webkit-animation-fill-mode: forwards; 
 
    -webkit-animation-timing-function: cubic-bezier(.82,0,.19,1); /* Safari 4.0 - 8.0 */ 
 
    animation-timing-function: cubic-bezier(.82,0,.19,1); 
 
} 
 
@keyframes slide-in { 
 
    0% {transform: translateX(-0%);} 
 
    100% {transform: translateX(-100%);} 
 
} 
 

 
@keyframes slide-in-b { 
 
    0% {transform: translateX(0%);} 
 
    100% {transform: translateX(100%);} 
 
} 
 
.next { 
 
    position: absolute; 
 
    height: 80px; 
 
    background: #141212; 
 
    width: 80px; 
 
    right: 0; 
 
    bottom: 50%; 
 
    z-index: 9; 
 
} 
 
.previous { 
 
    position: absolute; 
 
    height: 80px; 
 
    background: #141212; 
 
    width: 80px; 
 
    left: 0; 
 
    bottom: 50%; 
 
    z-index: 9; 
 
} 
 
/* end of slider*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="next"></div> 
 
    <div class="previous"></div> 
 
<div class="main-slider"> 
 
    <div class="slide"> 
 
     <figure class="cropped-image"> 
 
     <img src="https://images.unsplash.com/photo-1508108712903-49b7ef9b1df8?auto=format&fit=crop&w=2250&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" class="cover"> 
 
     </figure> 
 
    </div> 
 
    <div class="slide"> 
 
     <figure class="cropped-image"> 
 
     <img src="https://images.unsplash.com/photo-1507980668227-a52aa457699b?auto=format&fit=crop&w=2250&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" class="cover"> 
 
     </figure> 
 
    </div> 
 
    <div class="slide"> 
 
     <figure class="cropped-image"> 
 
     <img src="https://images.unsplash.com/photo-1497030855747-0fc424f89a4b?auto=format&fit=crop&w=2250&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" class="cover"> 
 
     </figure> 
 
    </div> 
 
    </div>

希望這有助於

+0

我剛剛更新了小提琴,因爲您的轉換有點不同 - https://fiddle.jshell.net/Jim_Miraidev/xjLr1a18/ –

+0

非常感謝你爲此工作。是的,我想實現一個類似的過渡(動畫)到這個:https://fiddle.jshell.net/k1ea93xt/19/在你的小提琴有一個階段,當所有三個圖像都顯示:無 – Lukas

+0

只是更新上面的代碼 –

0
votes
answers
36 views
+10

使彈性項目展開懸停,縮小其兄弟姐妹

1

我試圖解決flexbox問題,我想每行有三個div,首先大小相等,但是當懸停div時,該增長和其他的在同一行收縮。以爲我已經解決了它,直到我嘗試了多行。使彈性項目展開懸停,縮小其兄弟姐妹

我想要的是當懸停第三個div時,它會縮小第一個和第二個div,並保持其餘不變。我無法弄清楚這一部分。

以下是我的單排工作解決方案。

此佈局是否也可以在多行上工作?

我是否必須將每行包裝在單獨的容器中,還是有辦法解決這個問題?

.container { 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
    width: 100%; 
 
} 
 

 
.box { 
 
    width: 33%; 
 
    flex: 1; 
 
} 
 

 
.box:hover { 
 
    flex-grow: 3; 
 
}
<div class="container"> 
 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 
</div>

See it on CodePen

+0

你只想要第二列到懸停成長? – Kushtrim

+0

說我有6個盒子的div(每行3行2列),我把第二個div懸停,我想第二個div擴大,div 1&3縮小,而div 4-6保持不變。 – yayheartbeat

+0

這或多或少是不可能的,主要是因爲你需要檢測哪個行是histed元素,然後只在該行上增長/縮小元素,並且_previous sibling_沒有選擇器。 – LGSon

沙发
0
0

我已經盡了全力,讓他們在同一容器中排列,但他們似乎並不適合那裏。你最好把它們放在不同的容器中。

由此,他們會看起來不錯,如果您需要分開申請,您可以做一些簡單的風格。

這裏是Fiddle

.container { 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
    width: 100%; 
 
    justify-content: space-between; 
 
} 
 

 
.box { 
 
    width: 30%; 
 
    flex: 1 1 2%; 
 
    transition: all 0.3s ease-in-out; 
 
} 
 

 
.box:hover { 
 
    flex-grow: 2; 
 
}
<div class="container"> 
 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 
</div> 
 

 
<div class="container"> 
 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 

 
    <div class="box"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
     ut labore et dolore magna aliqua. </p> 
 
    </div> 
 
</div>

板凳
0
0

我一定要包中的每一行單獨的容器或者是有沒有辦法解決此問題的方法?

您需要將每行包裝在單獨的容器中。

由於包裝已啓用,因此無法使用彈性盒進行佈局。

這意味着單行中的項不能被展開,同時收縮其同胞而不觸發包裝。 當他們可以包裝時,沒有什麼可以迫使兄弟姐妹縮小。

沒有flex-wrap: wrap行長度有硬限制。然後,您可以在懸停時給予任意長度的物品(在我的示例中,我使用flex-basis: 100%),並且可以在縮小其兄弟的同時擴大其範圍,而無任何包裝問題。

.container { 
 
    display: flex; 
 
} 
 

 
.box { 
 
    flex-basis: 33.33%; 
 
} 
 

 
.box:hover { 
 
    flex-basis: 100%; 
 
} 
 

 

 
/* for demo only */ 
 
.box { 
 
    transition: .5s; 
 
    border: 1px dashed red; 
 
    box-sizing: border-box; 
 
}
<div class="container"> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut la bore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
</div> 
 

 
<div class="container"> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut la bore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
    <p class="box">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 
 
    ut labore et dolore magna aliqua. </p> 
 
</div>

0
votes
answers
55 views
+10

如何自定義導航欄中懸停的大小?

-1

我正在學習引導 我正在嘗試創建一個導航欄,當我們向下滾動時,它會縮小,並且還想讓我在全尺寸的鏈接上進行懸停,但我嘗試了太多但我無法完成。請幫助我使這個導航欄全高度懸停在鏈接上。以下是代碼中,我寫道:如何自定義導航欄中懸停的大小?

HTML代碼

<nav class="navbar navbar-default navbar-fixed-top"> 
    <div class="container-fluid" id="fullheader"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span>       
     </button> 
     <a class="navbar-brand" href="#">WebSiteName</a> 
    </div> 
    <div> 
     <div class="collapse navbar-collapse navbar-right" id="myNavbar"> 
     <ul class="nav navbar-nav"> 
      <li><a href="#section1">Section 1</a></li> 
      <li><a href="#section2">Section 2</a></li> 
      <li><a href="#section3">Section 3</a></li> 
      <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Section 4 <span class="caret"></span></a> 
      <ul class="dropdown-menu"> 
       <li><a href="#section41">Section 4-1</a></li> 
       <li><a href="#section42">Section 4-2</a></li> 
      </ul> 
      </li> 
     </ul> 
     </div> 
    </div> 
    </div> 
</nav> 

CSS代碼

.navbar{ 
    width: 100%; 
    padding: 40px 0; 
    background-color:#FFf; 
    border-bottom: 1px solid #e1e1e1; 
    /* animation magic */ 
    transition: all 0.4s ease-in-out; 
    -webkit-transition: all 0.4s ease-in-out; 
    -moz-transition: all 0.4s ease-in-out ; 
    z-index: 9999; 
    top: 0; 
    position: fixed; 
    } 

.navbar-default{ 
background-color:#fff !important;} 

.shrink{ 
    padding: 10px 0; 
} 


.navbar-default .navbar-brand{ 
    font-size: 30px; 
    -webkit-transition: all 0.4s ease-out; 
    transition: all 0.4s ease-out; 
} 

.navbar-default .navbar-brand,.navbar-default .navbar-brand:hover{ 
    color: #646464; 
    margin-left: 80px !important; 
} 

.shrink .navbar-brand{ 
    font-size: 20px; 
} 


.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>.active>a{ 
    background-color: #00CCFF!important; 
    display:block; 
} 



.navbar-default .navbar-nav>li>a{ 
    color: #FF0000 !important; 
    font-size: 16px; 
    font-weight: 500; 
} 

js代碼

$(document).ready(function(){ 
     $('body').scrollspy({target: ".navbar", offset: 50}); 
     $("#myNavbar a").on('click', function(event) { 
     if (this.hash !== "") { 
      event.preventDefault(); 
      var hash = this.hash; 
      $('html, body').animate({ 
      scrollTop: $(hash).offset().top 
      }, 800, function(){ 
      window.location.hash = hash; 
      }); 
     } 
     }); 
    }); 

$(window).scroll(function(){ 
      $scrol=$(document).scrollTop(); 
      //console.log($scrol); 
      if($scrol > 100){ 
       $(".navbar").addClass("shrink"); 
      } 
      else 
      { 
       $(".navbar").removeClass("shrink"); 
      } 
     }); 
沙发
0
0

你的意思是這樣的嗎? codepen.io

.navbar{ 
    width: 100%; 
    background-color:#FFf; 
    border-bottom: 1px solid #e1e1e1; 
    /* animation magic */ 
    transition: all 0.4s ease-in-out; 
    -webkit-transition: all 0.4s ease-in-out; 
    -moz-transition: all 0.4s ease-in-out ; 
    z-index: 9999; 
    top: 0; 
    position: fixed; 
    } 

.navbar-default{ 
background-color:#fff !important; 
min-height: auto;} 

.navbar-default .navbar-nav>li>a { 
    margin: 0 10px; 
    padding: 40px 0; 
    -webkit-transition: all 0.4s ease-in-out; 
    -moz-transition: all 0.4s ease-in-out ; 
} 

.shrink.navbar-default .navbar-nav>li>a, 
.shrink.navbar-default .navbar-brand { 
    padding: 10px 0; 
    height: 40px; 
} 


.navbar-default .navbar-brand{ 
    padding: 40px 0; 
    font-size: 30px; 
    -webkit-transition: all 0.4s ease-out; 
    transition: all 0.4s ease-out; 
    min-height: auto; 
height: auto; 
} 

.navbar-default .navbar-brand,.navbar-default .navbar-brand:hover{ 
    color: #646464; 
    margin-left: 80px !important; 
} 

.shrink .navbar-brand{ 
    font-size: 20px; 
} 



.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>.active>a{ 
    background-color: #00CCFF!important; 
    display:block; 
} 



.navbar-default .navbar-nav>li>a{ 
    color: #FF0000 !important; 
    font-size: 16px; 
    font-weight: 500; 
} 
板凳
0
0

好的,我認爲@尼古拉·科斯托夫的回答在滾動右側縮小了。這是你想要懸停全尺寸,這樣的東西?

body {height: 2000px;} 
.navbar{ 
    width: 100%; 
    background-color:#FFf; 
    border-bottom: 1px solid #e1e1e1; 
    /* animation magic */ 
    transition: all 0.4s ease-in-out; 
    -webkit-transition: all 0.4s ease-in-out; 
    -moz-transition: all 0.4s ease-in-out ; 
    z-index: 9999; 
    top: 0; 
    position: fixed; 
    } 

.navbar-default{ 
background-color:#fff !important; 
min-height: auto;} 

.navbar-default .navbar-nav>li>a { 
    margin: 0 10px; 
    padding: 40px 0; 
    -webkit-transition: all 0.4s ease-in-out; 
    -moz-transition: all 0.4s ease-in-out ; 
} 

.shrink.navbar-default .navbar-nav>li>a, 
.shrink.navbar-default .navbar-brand { 
    padding: 10px 0; 
    height: 40px; 
} 


.navbar-default .navbar-brand{ 
    padding: 40px 0; 
    font-size: 30px; 
    -webkit-transition: all 0.4s ease-out; 
    transition: all 0.4s ease-out; 
    min-height: auto; 
height: auto; 
} 

.navbar-default .navbar-brand,.navbar-default .navbar-brand:hover{ 
    color: #646464; 
    margin-left: 80px !important; 
} 

.shrink .navbar-brand{ 
    font-size: 20px; 
} 



.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>.active>a{ 
    background-color: #00CCFF!important; 
    font-size: 30px; 
    display:block; 
} 



.navbar-default .navbar-nav>li>a{ 
    color: #FF0000 !important; 
    font-size: 16px; 
    font-weight: 500; 
}