Gel-tête du tableau avec les CSS premières lignes sont sous l'en-tête
J'ai été en mesure de geler ma table des en-têtes et ont les largeurs des en-têtes et le reste de la correspondance de lignes, mais je ne suis pas en mesure d'obtenir ma première deux lignes à afficher sous l'en-tête.
table {
font-family:Arial, Helvetica, sans-serif;
color:#666;
font-size:12px;
background:#eaebec;
border:#ccc 1px solid;
border-radius:3px;
border-collapse:collapse;
border-spacing: 0;
box-shadow: 0 1px 2px #d1d1d1;
}
table th {
padding:2px 2px 2px 2px;
border-top:0;
border-bottom:1px solid #e0e0e0;
border-left: 1px solid #e0e0e0;
background: #ededed;
}
table th:first-child {
text-align: left;
}
table tr:first-child th:first-child {
border-top-left-radius:3px;
border-left: 0;
}
table tr:first-child th:last-child {
border-top-right-radius:3px;
}
table tr {
text-align: center;
}
table td:first-child {
text-align: left;
border-left: 0;
}
table td {
padding:2px 2px 2px 2px;
border-top:0;
border-bottom:1px solid #e0e0e0;
border-left: 1px solid #e0e0e0;
white-space: nowrap;
}
table tr:last-child td {
border-bottom:0;
}
table tr:last-child td:first-child {
border-bottom-left-radius:3px;
}
table tr:last-child td:last-child {
border-bottom-right-radius:3px;
}
table tr:hover td {
background: #F7FE2E;
}
table th,
table td {
width: 65px;
}
table tr,
table td {
width: 65px;
min-width: 65px;
}
#wrapper {
width: auto;
height: 850px;
overflow-x: scroll;
overflow-y: scroll;
}
thead {
position: fixed;
}
tbody {
position: relative;
}
Si quelqu'un peut me pointer dans la bonne direction sur la façon de déplacer les deux premières rangées sous l'en-tête? Permettez-moi de savoir si j'ai besoin d'expliquer plus ou si je dois ajouter à ma question!
J'ai ajouté un peu les choses, je crois que je n'ai pas expliquer http://jsfiddle.net/FyJwZ/4/
- Franchement, je serais surpris si cela fonctionne comme vous le dites il n'. Mais en supposant qu'elle fait, avez-vous essayé d'ajouter
margin-top
à votretbody
styles? - J'ai ajouté margin-top à mon tbody et il n'a rien fait. Quel est le problème et pourquoi vous pensez cela ne fonctionnerait pas @KevinBoucher
- Ouais, le violon montre que cette question n'est pas facile à résoudre. Cela nécessite généralement un peu de JavaScript (même si elle semble simple CSS devrait fonctionner).
- L'en-tête des colonnes n'apparaissent pas à la ligne avec le corps colonnes. Vous pourrait ressembler à ceci: stackoverflow.com/questions/11499973/... ou ceci: fixedheadertable.com
- Merci je vais regarder en essayant de mettre en place la façon dont ils l'ont fait dans le lien que vous avez posté. Si il y a d'autres options pour je ne serait pas l'esprit en voyant ceux aussi bien.
Vous devez vous connecter pour publier un commentaire.
Ici est un jsFiddle en ordre de marche: http://jsfiddle.net/FyJwZ/7/
Ce sont les modifications que j'ai apportées
Mise à JOUR
Voici un exemple plus complet: http://jsfiddle.net/kzuwR/14/
display: block
sur un corps de table... ne pas casser quoi que ce soit? Mon esprit est soufflé.while
déclaration est en train de lancer ce sur tous les. Edit: margin-top ne semble pas faire quoi que ce soit.table tr:first-child td:first-child{}
il les effets de chaque ligne dans lawhile
déclaration. C'est bizarre.#wrapper { float: left; }
à la taille de l'emballagediv
de façon appropriée.<th>
de balises dans l'en-tête du tableau à<td>
. Maintenant, il fonctionne. La question suivante, vous êtes capable de me dire comment l'obtenir pour faire défiler vers la droite et les en-têtes de déplacer trop? Voici la mise à jour de violon avec mes données: jsfiddle.net/kzuwR/10overflow:scroll
styles ont été retirés de lawrapper
et de mettre sur lestable
etthead
$(function() { /*code here */ });
Ou vous pouvez utiliseronload
sur la table<script src=tableheader.js></script>
. Puis j'ai mis le tableau id dans ainsi queonload='scrollHeader'
Est-ce mal?Vous avez défini
thead{position:fixed}
. Je n'ai jamais réellement utiliséposition:fixed
sur une table d'en-tête comme ça, mais je suppose que c'est épingler en haut de l'image comme vous le souhaitez. Le problème est que fixe la position des éléments à ne pas prendre de place sur la page des trucs glisse bien en dessous d'eux. Vous devriez être en mesure de compenser en ajoutant unmargin-top
à votretbody
, ou, si cela ne fonctionne pas, àtable tr:first-child
.Si cela ne fonctionne pas non plus, je venais tout juste de coller une taille appropriée vide
tr
en haut et être fait avec elle.Edit: en Fait, en jouant avec votre violon, il ne ressemble pas à la position fixe de la table d'en-tête est correctement réglage de la largeur de vos lignes sur mon navigateur. Quel navigateur utilisez-vous? Cela semble être le type de non-conventionnelles CSS qui peuvent causer de la croix-des problèmes de compatibilité navigateur. (Tables ont tendance à être difficile de cette façon.)