首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个并排的div不能工作。

两个并排的div不能工作。
EN

Stack Overflow用户
提问于 2015-04-28 14:09:24
回答 3查看 162关注 0票数 0

我有一个有多个图表和网格的页面。我试图将图表放在左边的列上,网格放在右边的列上。但出于某些原因,第二张图表是与右边对齐的。

这是我的小提琴

Java脚本

代码语言:javascript
复制
    var sharedDataSource = new kendo.data.DataSource({
    data: [
        { id: 1, value: 10, item: "Item1" },
        { id: 2, value: 12, item: "Item2" },       
        { id: 6, value: 11, item: "Item6" }       
    ],
    schema: {
        model: {
            id: "id",
            fields: {
                id: { type: "number", editable: false },
                value: { type: "number" },
                item: { type: "string" }                
            }
        }            
    }
});
for (var i = 0; i < 3; i++) {
    var divID = "chartDiv" + i;
    var cssClassForChartDiv = "leftcolumn";
    var divID1 = "gridDiv" + i;
    var cssClassForGridDiv = "rightcolumn";
    $("#parentDiv").prepend("<div class='" + cssClassForChartDiv + "'  ><div id='" + divID + "' style=width:400px;></div></div><div class='" + cssClassForGridDiv + "'><div id='" + divID1 + "' ></div></div>");//set width to 400 so that scroll bar appears
createGrid(divID1);
createChart(divID);
}

function createGrid(divID1)
{
$("#"+divID1).kendoGrid({
    dataSource: sharedDataSource,
    autoBind: false,
    editable: true,
    width:50//,
    //height:100//,
    //toolbar: ["save", "cancel"]
});
}
function createChart(divID2)
{
$("#"+divID2).kendoChart({
    dataSource: sharedDataSource,
    autoBind: false,
    legend: {
            position: "top"
        },
    chartArea:{
        width:200,
        height:140}
    ,
    categoryAxis: {
        field: "item"   
    },
    series: [
        { field: "value", name: "Value" }
    ]     
});
}
sharedDataSource.read();

CSS

代码语言:javascript
复制
    .leftcolumn {
    margin-top: 5px;
    margin-left: 10px;
    width: 45%;
    border: 0px solid;
    float: left;
    position:relative;
    background-color:red;
    overflow-x:scroll;
    overflow-y: hidden;
}

.rightcolumn {
    margin-top: 5px;
    margin-right: 10px;
    width: 45%;
    border: 0px solid;
    float: right;  
    background-color:green;
}

代码语言:javascript
复制
<div id = "parentDiv"></div>

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-28 14:11:10

这是因为在前一张图表的旁边有浮动的空间。因为垂直高度有细微的差异,所以它试图像这样排列它们。

若要修复,请尝试将clear: left添加到.leftcolumn中。

更新小提琴:http://jsfiddle.net/mga6f/419/

票数 8
EN

Stack Overflow用户

发布于 2015-04-28 14:16:57

或者..。没有双浮动(左和右)

代码语言:javascript
复制
var sharedDataSource = new kendo.data.DataSource({
    data: [
        { id: 1, value: 10, item: "Item1" },
        { id: 2, value: 12, item: "Item2" },       
        { id: 6, value: 11, item: "Item6" }       
    ],
    schema: {
        model: {
            id: "id",
            fields: {
                id: { type: "number", editable: false },
                value: { type: "number" },
                item: { type: "string" }                
            }
        }            
    }
});
for (var i = 0; i < 3; i++) {
    var divID = "chartDiv" + i;
    var cssClassForChartDiv = "leftcolumn";
    var divID1 = "gridDiv" + i;
    var cssClassForGridDiv = "rightcolumn";
    $("#parentDiv").prepend("<div class='" + cssClassForChartDiv + "'  ><div id='" + divID + "' style=width:400px;></div></div><div class='" + cssClassForGridDiv + "'><div id='" + divID1 + "' ></div></div>");//set width to 400 so that scroll bar appears
createGrid(divID1);
createChart(divID);
}

function createGrid(divID1)
{
$("#"+divID1).kendoGrid({
    dataSource: sharedDataSource,
    autoBind: false,
    editable: true,
    width:50//,
    //height:100//,
    //toolbar: ["save", "cancel"]
});
}
function createChart(divID2)
{
$("#"+divID2).kendoChart({
    dataSource: sharedDataSource,
    autoBind: false,
    legend: {
            position: "top"
        },
    chartArea:{
        width:200,
        height:140}
    ,
    categoryAxis: {
        field: "item"   
    },
    series: [
        { field: "value", name: "Value" }
    ]     
});
}
sharedDataSource.read();
代码语言:javascript
复制
.leftcolumn {
  margin-top: 5px;
  margin-left: 10px;
  width: 45%;
  border: 0px solid;
  position: relative;
  background-color: #F00;
  overflow-x: scroll;
  overflow-y: hidden;
  float: left;
  clear: left;
}

.rightcolumn {
  margin-top: 5px;
  margin-left: 50%;
  width: 45%;
  border: 0px solid;
  background-color: #008000;
}
代码语言:javascript
复制
<link href="//cdn.kendostatic.com/2012.2.621/styles/kendo.default.min.css" rel="stylesheet"/>
<link href="//cdn.kendostatic.com/2012.2.621/styles/kendo.mobile.all.min.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<link href="//cdn.kendostatic.com/2012.2.621/styles/kendo.common.min.css" rel="stylesheet"/>
<script src="//cdn.kendostatic.com/2012.2.621/js/kendo.all.min.js"></script>

<div id = "parentDiv"></div>

票数 1
EN

Stack Overflow用户

发布于 2015-04-28 14:18:32

为什么要向左和右混合?我只是想说

float: left;clear: both;上,margin-right: 10px;在你的“左列”上

http://jsfiddle.net/mga6f/421/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29921951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档