色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何設置邊框& # 39;的厚度百分比?

錢琪琛2年前8瀏覽0評論

如何用百分比設置元素的邊框寬度?我嘗試了語法

border-width:10%;

但是不管用。

我想用百分比來設置邊框寬度的原因是我有一個寬度為80%的元素;和身高:80%;,并且我希望元素覆蓋整個瀏覽器窗口,所以我想將所有邊框設置為10%。我沒有使用兩個元素的方法,在這種方法中,一個元素被放置在另一個元素的后面并作為邊框,因為元素的背景是透明的,將一個元素放置在它后面會影響它的透明度。

我知道這可以通過JavaScript來完成,但我正在尋找一個只有CSS的方法,如果可能的話。

正如其他人指出的CSS規范,邊框不支持百分比:

'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width'
  Value:          <border-width> | inherit
  Initial:        medium
  Applies to:     all elements
  Inherited:      no
  Percentages:    N/A
  Media:          visual
  Computed value: absolute length; '0' if the border style is 'none' or 'hidden'

如你所見,上面寫著百分比:不適用。

非腳本解決方案 您可以使用包裝元素來模擬您的百分比邊框,您可以:

將包裝元素的背景色設置為您想要的邊框顏色 以百分比設置包裝元素的填充(因為它們受支持) 將你的元素背景色設置為白色(或者其他任何需要的顏色) 這將在某種程度上模擬你的百分比邊界。這里有一個使用這種技術的25%寬度的元素的例子。

示例中使用的HTML

.faux-borders {
    background-color: #f00;
    padding: 1px 25%; /* set padding to simulate border */
}
.content {
    background-color: #fff;
}

<div class="faux-borders">
    <div class="content">
        This is the element to have percentage borders.
    </div>
</div>

你也可以使用

border-left: 9vw solid #F5E5D6;
border-right: 9vw solid #F5E5D6;

運籌學

border: 9vw solid #F5E5D6;

這是一個老問題,但是對于那些仍然在尋找答案的人來說,CSS屬性框大小在這里是無價的:

-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit  */
-moz-box-sizing: border-box;    /* Firefox, other Gecko         */
box-sizing: border-box;

這意味著您可以將div的寬度設置為一個百分比,并且您添加到Div的任何邊框都將包含在該百分比內。例如,下面的代碼會將1px邊框添加到div寬度的內部:

div { box-sizing:border-box; width:50%; border-right:1px solid #000; }

如果你想了解更多信息:http://css-tricks.com/box-sizing/

你可以用em來表示百分比而不是像素,

示例:

border:10PX dotted #c1a9ff; /* In Pixels */
border:0.75em dotted #c1a9ff; /* Exact same as above in Percentage */

百分比值不適用于CSS中的邊框寬度。這列在規格中。

您將需要使用JavaScript來計算元素的寬度百分比或您需要的任何長度數量,并將結果應用于px或類似元素的邊框。

現代瀏覽器支持vh和vw單位,它們是窗口視口的百分比。

因此,您可以將純CSS邊框作為窗口大小的百分比:

border: 5vw solid red;

嘗試此示例并更改窗口寬度;隨著窗口大小的改變,邊框的粗細也會改變??虼笮?邊框-框;可能也有用。

盒子尺寸 將框大小設置為邊框框大小:邊框框;將寬度設置為100%,并為邊框設置一個固定的寬度,然后添加一個最小寬度,這樣對于小屏幕來說,邊框不會覆蓋整個屏幕

您可以使用跨度制作自定義邊框。用一個類(指定邊框走向的方向)和一個id生成一個跨度:

<html>
    <body>
        <div class="mdiv">
            <span class="VerticalBorder" id="Span1"></span>
            <header class="mheader">
                <span class="HorizontalBorder" id="Span2"></span>
            </header>
        </div>
    </body>
</html>

然后,進入你的CSS,設置類為position:absolute,height:100%(垂直邊框),width:100%(水平邊框),margin:0%,background-color:# 000000;。添加所有必要的東西:

body{
    margin:0%;
}

div.mdiv{
    position:absolute;
    width:100%;
    height:100%;
    top:0%;
    left:0%;
    margin:0%;
}

header.mheader{
    position:absolute;
    width:100%;
    height:20%; /* You can set this to whatever. I will use 20 for easier calculations. You don't need a header. I'm using it to show you the difference. */
    top:0%;
    left:0%;
    margin:0%;
}

span.HorizontalBorder{
    position:absolute;
    width:100%;
    margin:0%;
    background-color:#000000;
}

span.VerticalBorder{
    position:absolute;
    height:100%;
    margin:0%;
    background-color:#000000;
}

然后將class="VerticalBorder "對應的id設置為top:0%;,左:0%;,寬度:1%;(因為mdiv的寬度等于mheader的寬度的100%,所以寬度將是您設置的100%。如果將寬度設置為1%,邊框將為窗口寬度的1%)。將對應于class="HorizontalBorder "的id設置為top:99%(因為它在標題容器中,所以top指的是它在標題中的位置。這個+高度加起來要100%才能達到底部),左:0%;和高度:1%(由于mdiv的高度是mheader高度的5倍[100% = 100,20% = 20,100/20 = 5]),高度將是您設置它的20%。如果將高度設置為1%,邊框將為窗口高度的0.2%)。下面是它的樣子:

span#Span1{
    top:0%;
    left:0%;
    width:.4%;
}
span#Span2{
    top:99%;
    left:0%;
    width:1%;
}

免責聲明:如果您將窗口調整到足夠小的尺寸,邊框將會消失。一個解決方案是,如果窗口被調整到某個點,則限制邊框的大小。我是這樣做的:

window.addEventListener("load", Loaded);

function Loaded() {
  window.addEventListener("resize", Resized);

  function Resized() {
    var WindowWidth = window.innerWidth;
    var WindowHeight = window.innerHeight;
    var Span1 = document.getElementById("Span1");
    var Span2 = document.getElementById("Span2");
    if (WindowWidth <= 800) {
      Span1.style.width = .4;
    }
    if (WindowHeight <= 600) {
      Span2.style.height = 1;
    }
  }
}

如果你做的一切都是正確的,它應該看起來像它在這個鏈接:https://jsfiddle.net/umhgkvq8/12/ 出于某種奇怪的原因,邊框會在jsfiddle中消失,但如果你在瀏覽器中啟動它,它不會消失。

[從2023年起]我用容器查詢單元解決了這個問題(特別是cqmin)

border: 0.5cqmin solid black;

這會將邊框設置為容器寬度或高度的0.5%(以較小者為準)。

MDN:https://developer . Mozilla . org/en-US/docs/Web/CSS/CSS _ Container _ Queries W3C草案:https://www.w3.org/TR/css-contain-3/#container-lengths 卡努斯:https://caniuse.com/css-container-query-units CQ min:cqi或cqb中的較小值 https://www.w3.org/TR/css-contain-3/#container-lengths

cqb:塊尺寸的度量:在水平寫入模式中是指物理高度(垂直尺寸),在垂直寫入模式中是指物理寬度(水平尺寸)。 https://www.w3.org/TR/css-writing-modes-4/#block-size

cqi:行內維度的度量:在水平寫入模式中是指物理寬度(水平維度),在垂直寫入模式中是指物理高度(垂直維度)。 https://www.w3.org/TR/css-writing-modes-4/#inline-size

看看calc()規范。下面是一個用法示例:

border-right:1px solid;
border-left:1px solid;
width:calc(100% - 2px);