顯示具有 CSS 標籤的文章。 顯示所有文章
顯示具有 CSS 標籤的文章。 顯示所有文章

2014年4月7日 星期一

table cell vertical align middle - 哪些年我們一起被坑的靴子

More Powerful ,more pits





This is a page, that is a Table

Can I make it anymore obvious?





But your customer say: I want those fucking words in the fucking middle!





You have no idea how to fix this crap with bootstrap





We need to find out where is this bootstrap's pits

Because you never know what selector that bootstrap assigned

There is in the bootstrap.css 1421 line





add a custom class





so those fucking words are in the fucking middle now

2013年4月23日 星期二

CSS Attribute Selector Part II

自從上回從 Wiki 發現 CSS Attribute Selector 強大之處之後 又過了一段時日 CSS Attribute Selector

但是其實 CSS 還有一些小祕密 就讓我們來瞧瞧

1.複數class

這個應該還算常見 比如我有兩個樣式 .borderStyle .colorStyle

如果我需要某元素同時具有這兩種樣式的效果 我可以這麼寫


    <style>
        .borderStyle
        {
            border: 1px solid #999;
        }

        .colorStyle
        {
            color: blue;
        }
    </style>
    <div>
        <input value="aaa" class="borderStyle" type="button" />
        <input value="bbb" class="colorStyle" type="button" />
        <input value="ccc" class="borderStyle colorStyle" type="button" />
    </div>

但是如果我想要第三個按鈕再做些變化的話該怎麼寫? 咦? .borderStyle colorStyle 好像沒辦法 因為對 CSS 而言 空格是下一層物件的意思了 =3=

想想 Attribute Selector

我們的 HTML 是一種 XML 所以我們的 class 也是一種 Attribute

所以我們可以使用 Attribute Selector


    <style>
        .borderStyle
        {
            border: 1px solid #999;
        }

        .colorStyle
        {
            color: blue;
        }

        [class='borderStyle colorStyle']
        {
            padding: 10px;
            font-size: 16pt;
        }
    </style>
    <div>
        <input value="aaa" class="borderStyle" type="button" />
        <input value="bbb" class="colorStyle" type="button" />
        <input value="ccc" class="borderStyle colorStyle" type="button" />
    </div>

值得注意的是 我們仍需要小心 CSS 的順序性 如果有覆寫之前設定過的屬性 會以最後指定的為準





2.複數attribute

我們之前已經會了 使用 Attribute Selector 來設定樣式


    <style>
        [data-hasBorder='true']
        {
            border: 1px solid #999;
        }

        [data-hasBorder='false']
        {
            border: none;
        }

        [data-isBig='true']
        {
            font-size: 16pt;
        }

        [data-isBig='false']
        {
            font-size: 9pt;
        }
    </style>
    <div>
        <input value="aaa" data-hasborder="true" data-isbig="true" type="button" />
        <input value="bbb" data-hasborder="false" data-isbig="true" type="button" />
        <input value="ccc" data-hasborder="true" data-isbig="false" type="button" />
        <input value="ddd" data-hasborder="false" data-isbig="false" type="button" />
    </div>

如過這回我們想要在 同時符合兩項 Attribute 的元素 做變化該怎麼辦?

答案很簡單沒人說 [] 只能有一個


    <style>
        [data-hasBorder='true']
        {
            border: 1px solid #999;
        }

        [data-hasBorder='false']
        {
            border: none;
        }

        [data-isBig='true']
        {
            font-size: 16pt;
        }

        [data-isBig='false']
        {
            font-size: 9pt;
        }

        [data-hasBorder='true'][data-isBig='true']
        {
            color: red;
        }

        [data-hasBorder='false'][data-isBig='false']
        {
            color: green;
        }
    </style>
    <div>
        <input value="aaa" data-hasborder="true" data-isbig="true" type="button" />
        <input value="bbb" data-hasborder="false" data-isbig="true" type="button" />
        <input value="ccc" data-hasborder="true" data-isbig="false" type="button" />
        <input value="ddd" data-hasborder="false" data-isbig="false" type="button" />
    </div>





大會串一下


    <style>
        input#btn1.btn[data-hasborder='true'][data-isbig='false']
        {
            color: orange;
            font-size: 24pt;
        }
    </style>
    <div>
        <input id="btn1" class="btn" value="aaa" data-hasborder="true" data-isbig="false" type="button" />
    </div>

TagName#Id.Class[Attribute1='value'][Attribute2='value']