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>
演示:
下面是正在发生的事情……
变成一个flexbox,并应用了ul
。每个显示:flex
现在排列成一行,这是flexbox子项(称为“flex项”)的默认行为li
将子元素沿主轴居中。在这种情况下,是水平的justify content:center
沿横轴居中子元素。在这种情况下,垂直对齐项目:居中
为绝对定位建立最近的定位祖先position:relative
将最后一个position:absolute
移动到其最近定位祖先的左边缘li
更新(基于评论;适用于较小屏幕) 我希望它尽可能向右滑动,而不是重叠 好的,我们可以将
空白: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; }
}