Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在一个div(导航)中进行不同的对齐?_Html_Css_Layout_Alignment_Text Alignment - Fatal编程技术网

Html 如何在一个div(导航)中进行不同的对齐?

Html 如何在一个div(导航)中进行不同的对齐?,html,css,layout,alignment,text-alignment,Html,Css,Layout,Alignment,Text Alignment,在这把小提琴中: 我希望#leftSide与我的的左端对齐,其余部分在中间 但我希望我的页面尽可能与窗口大小调整兼容,所以我不喜欢使用边距/填充 如果可能的话,我也希望在没有额外因素的情况下实现这一点 有人知道如何仅使用css来实现这一点吗?如果要对齐特定元素,只需创建一个类并将其添加到该元素中即可。 如果要对齐最后一个子对象或第一个子对象,请在css中使用:first child或:last child选择器。 记住#leftSide是一个ID,do将影响一个元素,而不是使用类。将以下内容添加

在这把小提琴中:

我希望
#leftSide
与我的
的左端对齐,其余部分在中间

但我希望我的页面尽可能与窗口大小调整兼容,所以我不喜欢使用边距/填充

如果可能的话,我也希望在没有额外因素的情况下实现这一点


有人知道如何仅使用css来实现这一点吗?

如果要对齐特定元素,只需创建一个类并将其添加到该元素中即可。 如果要对齐最后一个子对象或第一个子对象,请在css中使用:first child或:last child选择器。
记住#leftSide是一个ID,do将影响一个元素,而不是使用类。

将以下内容添加到css中:

#leftSide{
    float:left;
}
但是,如果我是你;我会为左边的图片添加几个像素的边距,这样它就不在边缘上了

不幸的是,我的解决方案有点破坏了您的垂直对齐

我希望
a 35; gnbii
在导航条的左端与 其余的链接在中间

但我希望我的页面尽可能与窗口大小调整兼容 所以我不喜欢使用边距/填充

我也希望在没有额外因素的情况下实现这一点,如果 可能

通过CSSflexbox定位属性的组合,可以满足所有要求

首先,将ID添加到父容器中:

<li class="gnb" id="align-left"> /* NEW - ID added */
<a class="gnb" id="gnbii" href="home.html">
<img id="gnbii" src="../images/instagram icon/1.png" alt="aranpuzzle.ir" height="40px">
<img id="gnbii" src="../images/instagram icon/2.png" alt="aranpuzzle.ir" height="40px">
</a>
</li>
演示:

下面是正在发生的事情……

  • ul
    变成一个flexbox,并应用了
    显示:flex
    。每个
    li
    现在排列成一行,这是flexbox子项(称为“flex项”)的默认行为

  • justify content:center
    将子元素沿主轴居中。在这种情况下,是水平的

  • 对齐项目:居中
    沿横轴居中子元素。在这种情况下,垂直

  • position:relative
    为绝对定位建立最近的定位祖先

  • position:absolute
    将最后一个
    li
    移动到其最近定位祖先的左边缘

要了解更多关于flexbox的信息,请参考以下内容:

要了解有关绝对位置的更多信息,请查看:


更新(基于评论;适用于较小屏幕)

我希望它尽可能向右滑动,而不是重叠

好的,我们可以将
空白:nowrap
添加到
ul
中,使导航项目始终保持一行

然后声明一个媒体查询,将较小屏幕上的所有内容向右移动:

@media only screen and (max-width: 768px) { 
    ul { justify-content: flex-start; }  /* note: site is RTL */
    #align-left { position: static; }
}
更新的演示:

…当没有足够的空间向右滑动时,我更喜欢这样 浏览器不允许用户调整窗口的任何宽度 蒂纳

你确定这就是你想做的吗?有设置浏览器窗口大小的方法,但我不确定它们在所有浏览器中是否完全可靠。更重要的是,我认为这不符合最佳实践。在我看来,应该允许用户重新调整浏览器窗口的大小,不管浏览器本机允许多少。[.]


作为一名web开发人员,您最好专注于您有更多控制权的领域。您可以设置一个
minwidth
声明,告诉浏览器您的元素不能再窄了。或者您可以使用媒体查询来改变周围的内容,以适应较小的屏幕。

小写字母t,因此
文本对齐:居中。同时在支架和选择器之间留出空间,
nav a#左侧{
sry,这些都是打字错误:)哈哈!这是一个命令!先生是的先生!sry!我以为这是一个答案!;)快乐的编程伙伴!如果你也对答案感兴趣,请投票支持我的问题;)我认为这个标题更好,因为它的答案也是关于如何让一些元素左对齐,一些右对齐,一些中对齐,一些右对齐等的答案。我认为代码应该在bc开头提到。我们首先必须定义
#leftSide
,然后再讨论它。但是感谢您的输入!我不知道如何输入!奇怪的是,您必须输入两次才能实现一次换行!您还可以使用
br
标记在问题中创建换行符。向我展示您的代码or将其粘贴到JSFIDLE中以帮助您。我太懒了!我更喜欢耐心:)非常感谢!您是否尝试过
nav li#leftSide{text align:left;}
@aran,Stack Overflow的一个目的是创建一个问题和答案的存储库,以帮助未来的人们。发布您的代码使您的问题对更广泛的社区更有价值(更不用说它可能会让您的问题得到更多的关注和更高质量的答案)@Michael_B我知道,但我想如果某人能用代码回答这个问题,他们也可以不用!问题是我用笔记本电脑编程,而我的手机上只有互联网,我看到我必须做一个热点!:D!bc noone正在回答!(如果我现在编辑,它会提升这个问题,还是我最好删除这个并发布一个新的问题?在我准备答案时,你更改了你的HTML和小提琴演示。但是,这个答案仍然适用于你修改后的问题,并涵盖了你的所有要求。如果你有任何问题,请发表评论。我很高兴进行编辑,但我意识到确实有里面有太多不相关的细节,所以我想保持简短和概括:)非常感谢你的详细解释,回答!好,你的答案修正了我的答案的问题,应该在中间的部分并不完全在中间,但是问题是当窗口的宽度被调整时,条目的干扰,而且它也不能解决垂直对齐问题,可能是你。没有注意到填充的bc,尝试在css的开头添加
*{padding:0;margin:0;}
,希望您会注意到:)没有问题
@media only screen and (max-width: 768px) { 
    ul { justify-content: flex-start; }  /* note: site is RTL */
    #align-left { position: static; }
}