1. 程式人生 > >[css]如何讓一個元素div1的寬度由子元素的寬度決定,並超出父元素div0

[css]如何讓一個元素div1的寬度由子元素的寬度決定,並超出父元素div0

這裡針對的都是block的元素

div0

  div1

    div1_1

    div1_2

我希望做到的比較奇葩:

主要目的是使div橫排

若div0的寬度夠大,超過div1_1, div1_2的總和,則可以直接使用網上搜到的解決方案:使用float:left

在div1有一個較窄的父元素的情況下,希望div1的寬度可以由子元素撐開,超過父元素的寬度。。

div1中有並列的橫排div1_1, div1_2

如果對div1_1, div1_2使用

float: left;

將會撐不開div1,自動換行,float會失效:


目標:


block元素的預設寬度是上一個指定寬度的父元素的寬度。

若希望能動態的生成一個由內容決定的寬度(這個問題叫shrinking wrap)

有幾種做法 http://haslayout.net/css-tuts/CSS-Shrink-Wrap

比較好的做法是給div1使用css:

white-space:nowrap;/*如果沒有這一條,子元素會自動換行*/

display: table; //or inline-block

div1的子元素使用:

display: inline-block;

vertical-align: top;/*使它看起來和float:left一樣,預設是底部對齊,對於高度不一樣的子div會有影響*/

//如果使用float:left; 將會失效,無法撐寬div1,仍然是兩行

順便推薦一個不錯的線上測試網站:

http://jsfiddle.net/

html:

http://jsfiddle.net/PZT47/1

-----------------------------------

<!DOCTYPE HTML>
<html>
<head>
<style>
div{
border: 2px solid black;
margin: 5px
}
#container{
width : 200px;
height : 200px;
position : relative;
background : yellow;
overflow: visible;
}
#inncontainer{
white-space:nowrap;
display: inline-block;
background: cyan;
width: auto;
height : 190px;
  
}
#in1{
height:70px;
}
#in2{
height:80px;
}
.inner{
display: inline-block;
width:90px;
position : relative;
background: red;
}
</style>


    </head>
    <body>
<div id="container">
<div id="inncontainer">
<div id="in1" class="inner">a</div>
<div id="in2" class="inner">b</div> 
   </div>
</div>
</body>
</html>

參考的比較多,其他的找不到了:

http://stackoverflow.com/questions/450903/make-div-width-equal-to-child-contents

相關推薦

[css]如何一個元素div1寬度元素寬度決定超出元素div0

這裡針對的都是block的元素 div0   div1     div1_1     div1_2 我希望做到的比較奇葩: 主要目的是使div橫排 若div0的寬度夠大,超過div1_1, div1_2的總和,則可以直接使用網上搜到的解決方案:使用float:left

html、css和js原生寫一個模態彈出框順便解決元素半透明元素不透明效果

script javascrip z-index htm index 彈出 rgb 特性 radi 模態框: html部分: <!-- 按鈕 --> <button id="box" onclick="pop_box()">彈出框</

CSS一個元素一閃一閃的

post color mes init log blog mat ani ear .heart{ animation:heart 1s ease infinite; } @keyframes heart { 0% {opacity:0.1;}

完成一個“可以使用者鍵入文字內容輸出其字元個數”的Java應用程式

一、任務目標     完成一個 java application應用程式,可以接收使用者通過鍵盤輸入的文字,並輸出此段文字字元的個數。   二、Scanner類     Scanner是JDK1.5新增的一個類,可以使用該類建立一個物件。它是一個可以使用正則表示

盒子margin-top自身在盒子中未發生下移反倒是元素向下移動

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>子盒子在父盒子垂直居中&

Flex 佈局教程:語法篇 作者: 阮一峰 日期: 2015年7月10日 網頁佈局(layout)是 CSS一個重點應用。 佈局的傳統解決方案基於盒狀模型依賴 display 屬性 + po

網頁佈局(layout)是 CSS 的一個重點應用。 佈局的傳統解決方案,基於盒狀模型,依賴 display 屬性 + position屬性 + float屬性。它對於那些特殊佈局非常不方便,比如,垂直居中就不容易實現。 2009年,W3C 提出了一種新的方案----Flex 佈局,可以簡

Java查詢陣列重複元素列印重複元素、重複次數、重複元素位置

面試題查詢重複元素並列印重複次數和重複位置,一頓懵逼,回來死磕寫下來,列印指定重複次數和最大次數,其他在此基礎上可以再更新 package sort;import org.testng.annotations.Test;import sun.org.mozilla.javascript.interna

函式呼叫函式函式呼叫的方法函式重寫了那麼最後函式呼叫的是自己的方法還是函式的方法。

Q:子類呼叫父類的方法,父類中某個方法所呼叫的方法,子類也重寫了,那麼最後父類中的方法呼叫的是自己的方法,還是子類的方法。 A:呼叫的是子類的方法。     看程式碼: public class Parent { public void used

請使用迭代查詢一個list中最小和最大值返回一個tuple

自己寫個小程式玩,程式碼實現:   def findMinAndMax(L): if len(L) == 0: return (None, None) else: mi = L[0] ma = L[0] f

使用迭代查詢一個list中最小和最大值返回一個tuple。

Numbuer = [5,8,109,87,99,33,24,77] def findMinAndMax(Numbuer):   if Numbuer !=[]:     min = Numbuer[0]     max = Numbuer[0]   for x in Numbuer:     if max

用JS新增聚焦事件以給元素新增邊框陰影為例

function setBoxShadow (){ $('.class').each(function () { $(this).focus(function(){ $(this).parent().css("outline","none");/*禁用瀏覽器自帶邊框陰影*/ $(t

求兩個元素遞增排列的連結串列的交集將其存放在某個連結串列中

#include "stdafx.h" #include<stdio.h> #include<malloc.h> #include<stdlib.h> typed

請使用迭代查詢一個list中最小和最大值返回一個tuple(Python)

from collections import Iterable, Iterator def g(): yield 1 yield 2 yield 3 print('Iterable? [1, 2, 3]:', isinstance(

Python 編寫程式生成1000個隨機[20,121)之間的整數統計每個元素出現的次數

Python    編寫程式,生成1000個隨機[20,121)之間的整數,並統計每個元素出現的次數 練習題 2018.10.11 import random a = [random.randint(20,121) for i in range(1000)] y = s

easyui防止panel,dialog,window超出元素邊界

var easyuiWindowOnMove = function(left, top) {//如果不在操作範圍則不移動if((top == 1 && left > 0 ) || (left == 1 && top > 0 ) ) return;var parent

解決Jquery easyui中dialog、window、panel三個元件拖動超出元素界限問題

在網上查了一些 對於此問題的改動,發現在實際中都有一些問題(比如 有時候父元素取不到,父元素的width和height取不到),於是在此基礎上做了修改,親測可用。 /** * 針對panel window dialog三個元件拖動時會超出父級元素的修正 * @para

資料提取:將一個整數的各個位上的數字輸出求和

一、分析:需要兩個類來實現即可 1,數字類:需要實現將整數的各個位上的資料輸出: 方法:將整數除以10取餘數則為末位的數字,然後整數除以10,繼續迴圈這個步驟,直到0為止          但是在輸出的時候,需要將這些數字正序輸出,則