我试图创建的是一个动态锦标赛网站,可以缩放到任何大小,但使用尽可能少的代码。
第一轮(游戏):我有第一轮和运行,它是灵活的任何大小,它会好看,无论我用它做什么。
第二回合:这是问题的开始,因为我对连接所有游戏的线路的解决方案。这些行由div类.line top和.line bottom模拟。但是,由于第二轮的游戏较少,游戏之间的空间较大,所以不能对第二轮的每套游戏都使用同一行代码。正如您在示例中所看到的,第一种方法可以很好地工作,除了连接它们的线,这也是一个问题。如果我在第二轮中添加另一组游戏,代码就会中断,因为需要比第一个游戏上方的空间更大的空间。它需要的空间与第二轮第1场和第2场之间的空间相同。看看这个例子,你就会明白我的意思。
对于我真正的问题:我如何创建一个动态的网站,将熟练取决于球员的数量,在锦标赛?主要是,我该如何处理这些线路?我需要一个线之前,每一个盒子,以及固定的空间,这是需要在游戏3之前,以及任何其他游戏添加。当我添加第3轮和第4轮等等时,同样的问题也会出现。我想主要的问题是连接盒子的线,水平的,而不是垂直的。现在盒子就放在上面。盒子的左边应该有一条水平线。
我处理这个问题的方法已经错了吗?有没有更好的解决方案,我的线和我如何创造空间上方和下方我的游戏?
网站可以在这里找到:http://jsfiddle.net/UZs4s/
HTML格式

    <div class="navbar navbar-inverse navbar-static-top" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">Tournament</a>
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                <li class="active"><a href="#">Home</a></li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container">
        <div class="round-1">
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-top"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-bottom"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-top"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-bottom"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-top"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-bottom"></div>
        </div>

        <div class="round-2">
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-top"></div>
            <div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-bottom"></div>
<div class="game">
                <div class="contender-1">
                x
                </div>
                <div class="contender-2">
                x
                </div>
            </div>
            <div class="line-top"></div>
        </div>
    </div>

CSS
.contender-1,
.contender-2 {
    font-family: Arial, sans-serif;
    font-size: 12px;
    width: 120px;
    border: 1px solid #000;
    padding-left: 2px;
    background-color: #f1f1f1;
}

.contender-1 {
    border-bottom: 0px;
}

.game {
    margin-bottom: 16px;
    float: left;
    clear: both;
}

.round-1 .line-top {
    float: left;
    height: 35px;
    width: 10px;
    border-right: 1px solid #000;
    margin-top: 18px;
    border-top: 1px solid #000;
}

.line-bottom {
    float: left;
    height: 19px;
    width: 10px;
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
}

.round-1 {
    float: left;
}

.round-2 {
    float: left;
    margin-top: 26px;
}

.round-2 .line-top {
    float: left;
    height: 85px;
    width: 10px;
    border-right: 1px solid #000;
    margin-top: 18px;
    border-top: 1px solid #000;
}

最佳答案

http://jsfiddle.net/coma/AwrZq/22/
http://caniuse.com/#feat=flexbox

div.tournament {
    display: flex;
    flex-direction: row;
}

div.tournament > div {
    flex: 1;
}

div.tournament > div > div {
    position: relative;
}

div.tournament > div + div {
    flex: 1;
    display: flex;
    flex-flow: column;
    padding-left: 20px;
}

div.tournament > div:first-child > div + div {
    padding-top: 10px;
}

div.tournament > div + div > div {
    flex: 1;
    display: flex;
    flex-flow: row wrap;
    align-content: center;
}

div.tournament > div > div + div:after {
    content: "";
    position: absolute;
    bottom: 50%;
    right: -10px;
    width: 1px;
    height: 100%;
    background-color: #333;
}

div.tournament > div:first-child > div + div:after {
    height: 62px;
    bottom: 25px;
}

div.tournament > div > div > ul {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #333;
    width: 100%;
}

div.tournament > div > div > ul:after {
    content: "";
    position: absolute;
    top: 50%;
    left: -11px;
    right: -10px;
    height: 1px;
    background-color: #333;
}

div.tournament > div:first-child > div > ul:after {
    left: 0;
    right: -9px;
}

div.tournament > div:last-child > div > ul:after {
    right: 0;
}

div.tournament > div > div > ul > li {
    font-size: 15px;
    line-height: 1em;
    position: relative;
    list-style: none;
    margin: 0;
    padding: 5px;
    background-color: #ccc;
}

div.tournament > div > div > ul > li:before {
    content: "X";
}

关于html - 比赛支架-线条和空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22000757/

10-15 14:58