HTML / CSS : centrer div(s)

Fermé
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015 - 30 sept. 2014 à 10:41
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015 - 9 oct. 2014 à 09:31
Bonjour,

alors voilà, j'ai utilisé booststrap avec mon site web et j'ai quelques petits soucis pour centrer le contenu de ma div au milieu de la page...J'ai essayé beaucoup de chose différents, mais je pense qu'il faut de la précision et je en m'y connais pas suffisamment en CSS...

Merci d'avance pour les conseils ^^.

<div class="row">
<div class="col-sm-3 col-md-2">
<a href="#7">
<div class=" thumbnail">
<img src="static/img/7.jpg" alt="">
<div class="caption">
<strong>img1</strong>
<p>1</p>
</div>
</div>
</a>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img src="static/img/6.jpg" alt="">
<div class="caption">
<strong>img2</strong>
<p>2</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img src="static/img/3.jpg" alt="">
<div class="caption">
<strong>img3</strong>
<p>3</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img src="static/img/4.jpg" alt="">
<div class="caption">
<strong>img4</strong>
<p>4</p>
</div>
</div>
</div>
</div>

Pour vous donner des idées, j'ai plus ou moins essayé tout ca dans le css:

.div-h {
bottom: 50px;
width: 100px;
padding:50px;
margin:50px;
margin-top:50px;
left: 20px;
position: absolute;
height: 100px;
display: table-cell;
vertical-align: middle;
}
*/

#bloc {
display: table;
table-layout: inherit;
float:middle;
}
#bloc > div {
display: table-cell;
}
#bloc > div > div {
display: table;
}
#bloc > div > div > div {
display: table-cell;
}

seulement je suis un peu dépassé par les détails...Et c'est ptete même pas la solution? lol.

A voir également:

15 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
30 sept. 2014 à 17:14
Salut,

La solution recommandée par bootstrap pour centrer des .col- dans une .row est l'utilisation des offsets : https://getbootstrap.com/css/#grid-offsetting

j'ai juste ajouté la classe container dans le premier div avec row
Normalement un div class="row" doit être placé à l'intérieur d'un div class="container" (cf premier point https://getbootstrap.com/css/#grid-intro).
Si tu appliques les classes container et row sur le même div, tu risques d'avoir des effets inattendus.
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
1 oct. 2014 à 10:26
Tu as une partie dédiée à IE8-9 sur la doc de bootstrap : https://getbootstrap.com/getting-started/#support-ie8-ie9
Mais tu as déjà bien ajoutée html5shiv et respond.js qui sont nécessaires.

Tu as un exemple de pb d'affichage avec IE ?

Attention également aux erreurs dans ton code html. Contrairement à IE, la plupart des autres navigateurs essaye de "corriger" automatiquement certaines erreurs de syntaxe (div non fermé...), cela masque le problème sauf sur IE qui ne fait pas ces "corrections".
Un petit tour par http://validator.w3.org/ pour valider tout ca.
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
1 oct. 2014 à 11:12
En html strict, les balises méta doivent effectivement être fermée comme ceci :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Mais tu ne devrais pas avoir ce problème car tu dois utiliser le doctype html 5 :
<!DOCTYPE html>
<html>
1
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
30 sept. 2014 à 15:54
bon ben j'ai juste ajouté la classe container dans le premier div avec row... et pouf! Chamarch.

Maintenant...Le site fonctionne sous firefox 32 et uniquement firefox. J'utilise wamp2.4 par soucis de compatibilité avec XP.

Opera, Safari, Chrome, IE8 (puisque 9.. pas sous XP), même combat (ca marche pas)...Seul IE devrait avoir besoin d'être "bootstrapé", les autres devrai fonctionner, je ne comprends pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
Modifié par HellBenito le 1/10/2014 à 09:57
@Pitet

Okay merci je vais regarder ca ;)

en mettant un offset sur chaque <div class="col-sm-3 col-md-2"> de mes 4 images en ligne, ca me met des espaces énormes entre mes images oO, parcontre en mettant un seul offset dans la premiere <div class="col-sm-3 col-md-2"> ca me centre les 4 images, étrange non?

Container semble plus stable, sauf que en englobant toutes mes "row" (avec container) ca m'a supprimé la petit colonne que j'avais fais pour y mettre des infos. J'ai donc supprimer le container et garder mes image mal alignés lol.

Mais je me fie a ce que tu m'a dis qur le fait que j'aurais pitet des surprises ^^.

Après mon principal pb c'est que ca ne s'affiche pas du tout comme voulu sous IE8 (j'ai XP et bootstrap3), si tu as une idée...

J'ai déjà ajouté ca sans grand succès:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>bidoubidou</title>

<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.2.0/flatly/bootstrap.min.css" rel="stylesheet" media="all" type="text/css">
<link href="static/css/style.css" rel="stylesheet" media="all" type="text/css">

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
Modifié par HellBenito le 1/10/2014 à 10:54
Ah ok, d'acc merci je vais voir ca, j'ai effectivement beaucoup de div c'est peut être le problème.

En fait les images dont je parlais s'affichent toutes en colonnes et non plus en lignes...

Et la colonne dont je parlais avec les infos en haut a droite de la page se retrouvent sous les photos en bas à gauche de la page.

Voici le compte rendu :

Line 5, Column 70: end tag for "meta" omitted, but OMITTAG NO was specified
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

et

Line 5, Column 3: start tag was here
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Line 11, Column 3: start tag was here
<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.2.0/flatly/bootstrap.min.c...

Error Line 22, Column 61: there is no attribute "role"
<nav class="navbar navbar-default navbar-static-top" role="navigation">

J'ai 12 erreurs du genre
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
Modifié par HellBenito le 1/10/2014 à 12:13
Ah oui effectivement merci je suis passé à 6 erreurs.

En fait j'ai ce Doctype :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">

comme conseillé par le validateur...(enfin avec les "en" au lieu de "fr")

Il ne me reste que c'est 6 erreurs dans mon index.html si jamais tu as encore un peu de temps à me consacrer... ^^. J'espère que ca résoudra mon problème avec IE.

Je pense que c'est le problème vu que IE ne semble pas du tout affecté par le code de bootstrap que je connais seulement depuis une semaine, j'ai un peu de mal a trouver les infos que je cherche dessus (ne connaissant pas forcément les termes).

there is no attribute "class"
<nav class="navbar navbar-default navbar-static-top" role="navigation">

there is no attribute "role"
<nav class="navbar navbar-default navbar-static-top" role="navigation">

element "nav" undefined
<nav class="navbar navbar-default navbar-static-top" role="navigation">

there is no attribute "data-toggle"
..."navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navb...

there is no attribute "data-target"
... collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">

element "footer" undefined
<footer>
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
1 oct. 2014 à 12:33
Change ton Doctype pour utiliser celui de html5 : https://www.w3schools.com/tags/tag_doctype.asp

Les balises nav, footer, etc.. n'existent pas en html < 5
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
Modifié par HellBenito le 1/10/2014 à 14:02
Oki j'ai fais ca, il m'écrit ce warning et cette erreur :

Using experimental feature: HTML5 Conformance Checker.

The validator checked your document with an experimental feature: HTML5 Conformance Checker. This feature has been made available for your convenience, but be aware that it may be unreliable, or not perfectly up to date with the latest development of some cutting-edge technologies. If you find any issues with this feature, please report them. Thank you.


Bad value X-UA-Compatible for attribute http-equiv on element meta.
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

j'ai mis la meta en commentaire et ca passe:

<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<![endif]-->

IE9 et IE=edge sont correctes?

Je n'ai plus de faute grâce a toi ^^, mais mon IE8 n'affiche pas le site correctement...notamment le menu il manque 2 rubriques (la nav barre?). Et mes images sont toujours affiché en colonne.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
1 oct. 2014 à 14:29
Concernant le permier warning Using experimental feature, la validation html5 n'est pas considérée comme stable mais ça n'a pas d'importance.

Pour l'erreur sur la meta X-UA-Compatible, il semble que celle-ci ne fasse pas partie des standards. Peu d'importance encore une fois, tant que le code html est correct cette erreur n'aura pas d'incidence.
Ta correction avec le commentaire conditionnel est correcte mais celui-ci ne fonctionnera pas sur IE 10 et plus, à tester si elle est nécessaire pour ces versions.

Montre nous ton code complet si tu veux plus d'aide sur tes problèmes d'affichages sous IE8.
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
Modifié par HellBenito le 1/10/2014 à 14:45
Euh comme ca directe ou je te l'envoie?

Ca ce sont les 2 ligne de 4 images (1 colonne sous IE8):

<div class="col-md-8 col-md-offset-1">

<center><h2>Les salles</h2></center><br/>
<center><strong><p> Salles pouvant être disposés en U, Classe ou Théâtre (accès handicapé):</p></strong></center>

<div class="row">
<div class="col-sm-3 col-md-2 col-md-offset-2">
<a href="#salles-accajou">
<div class=" thumbnail">
<img class="width" src="static/img/salles/7.jpg" alt="accajou">
<div class="caption col-md-offset-2">
<strong> Accajou</strong>
<p>17places</p>
</div>
</div>
</a>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/6.jpg" alt="peuplier">
<div class="caption col-md-offset-2">
<strong>Peuplier</strong>
<p>21places</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/3.jpg" alt="cedre">
<div class="caption col-md-offset-2">
<strong> Cèdre</strong>
<p>21places</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/4.jpg" alt="ebene">
<div class="caption col-md-offset-2">
<strong> Ebène</strong>
<p>110places</p>
</div>
</div>
</div>
</div>

<center><strong><p>Salles pouvant être disposés en U seulement:</p></strong></center>

<div class="row">
<div class="col-sm-3 col-md-2 col-md-offset-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/5.jpg" alt="accajou">
<div class="caption col-md-offset-2">
<strong> Acca</strong>
<p>12places</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/8.jpg" alt="peuplier">
<div class="caption col-md-offset-3 col-md-offset-2">
<strong> Iris</strong>
<p>12places</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/9.jpg" alt="cedre">
<div class="caption col-md-offset-3 col-md-offset-2">
<strong> Crocus</strong>
<p>16places</p>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div class="thumbnail">
<img class="width" src="static/img/salles/10.jpg" alt="ebene">
<div class="caption col-md-offset-3 col-md-offset-2">
<strong>Narcisse</strong>
<p>16places</p>
</div>
</div>
</div>
</div>
</div>



Et voici l'index


<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<![endif]-->
<title>Location de Salles</title>

<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.2.0/flatly/bootstrap.min.css" rel="stylesheet" media="all" type="text/css"/>
<link href="static/css/style.css" rel="stylesheet" media="all" type="text/css"/>

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>

<body>
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<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="#">Location des salles</a>
</div>

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#prestations">Prestations</a></li>
<li><a href="#venir">Comment venir?</a></li>
</ul>
</div>
</div>
</nav>

<div id="main" class="container"></div>

<footer>
<div class="container">
<ul>
<li>
<p style="float:right">
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:60px;height:21px"
src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
alt="CSS Valide !" />
</a>
</p>
<a href="#mentions">Mentions légales</a></li>
</ul>
</div>
</footer>

<script type="text/javascript">
function hashchange() {
var hash = location.hash.substring(1),
main = document.getElementById('main'),
xmlhttp = new XMLHttpRequest(),
file = '';

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 ) {
if (xmlhttp.status == 200) {
main.innerHTML = xmlhttp.responseText;
}
}
}

if (hash === '') {
file = 'salles.html';
} else if (hash === 'venir') {
file = 'venir.html';
} else if (hash === 'mentions') {
file = 'mentions.html';
} else if (hash === 'prestations') {
file = 'prestations.html';
} else if (hash === 'salles-accajou') {
file = 'salles/accajou.html';
}

xmlhttp.open("GET", file, true);
xmlhttp.send();
}

window.onhashchange = hashchange;
hashchange();
</script>
</body>
</html>
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
1 oct. 2014 à 14:45
L'idéal serait d'avoir un lien direct si ton site est en ligne.

Sinon tu copier ton code sur https://pastebin.com/ ou sur https://jsfiddle.net/ par exemple.
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
1 oct. 2014 à 16:42
hum comme ca?


http://pastebin.com/LvZAAxuv
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
8 oct. 2014 à 15:53
En fait un ami ayant ie11 m'a dit que ca passait nikel sur son pc donc j'imagine qu'à partir de ie9 ca passe et que le code fonctionne, pour ie8 ca sera un peu plus cocasse...^^.

Sinon, est il possible a partir de bootstrap d'afficher un fichier excel dans un nouvel onglet?

J'ai utilisé ca mais le classeur est en mhtml (excel enregistrer pour etre adapter au net, j'ai l'impression que ca ne marche que sous ie, j'ai eu une méga boucle infinie de la mort en forcant sous firefox :D j'ai du eteindre le pc j'avais plus la main lool, ca m'ouvrait des onglets à littéralement n'en plus finir).

<div id="Layer1" style="position:absolute; width:95%; height:80%; z-index:1; visibility: visible">
<iframe
name ="calendrier" src="#classeurtest" scrolling="yes" height="100%" width="100%" align="center" frameborder="yes">
</iframe>
</div>
0
HellBenito Messages postés 56 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 20 mars 2015
9 oct. 2014 à 09:31
Je fais mon petit mono questions/réponses, ca pourra ptete aider quelqu'un.

Alors, je pense que bootstrap ne gère pas ca... j'ai donc changer le excel en pdf et fais un <iframe>.

<iframe
name ="calendrier" src="classeurtest.pdf" scrolling="yes" height="600px" width="100%" align="center" frameborder="yes">
</iframe>

mais le ficher étant sur 1 page en excel et sur 3 page en pdf ca me pose problème lors de l'affichage, en effet c'est un calendrier coupé en 3, autant dire que c'est pas évident de se repérer! J'essai de bidouiller l'apparence du fichier pdf lui même mais... si quelqu'un lis ce message et a une idée... merci d'avance ;) .
0