面小編為大家?guī)?lái)的是解決網(wǎng)頁(yè)制作中的空格問(wèn)題,這里詳細(xì)的介紹了解決網(wǎng)頁(yè)制作中的空格問(wèn)題的相關(guān)知識(shí),希望能對(duì)大家有所幫助。
Dreamweaver是一個(gè)非常簡(jiǎn)單易用但又功能強(qiáng)大的網(wǎng)頁(yè)制作軟件。但是,它卻又一個(gè)令很多初學(xué)者很困惑的問(wèn)題。那就是空格。在Dreamweaver中使用空格遠(yuǎn)遠(yuǎn)沒(méi)有象word中一樣方便。比如首行無(wú)法空格,句子中間空一格以上都是不行的。原因是什幺呢?這是因?yàn)樵贖TML語(yǔ)言中多于一個(gè)的空格都被忽略不計(jì)。這樣就造成了空格困難的原因。如何很好地解決Dreamweaver的空格問(wèn)題呢?解決的方案有很多:1、 制作一張很小的透明圖片。嵌入到文本當(dāng)中或者行首。這種方法實(shí)現(xiàn)起來(lái)比較麻煩。2、 使用全角空格。為什幺這種方案可行呢?因?yàn)槿强崭駥?shí)現(xiàn)起來(lái)比較簡(jiǎn)單。雖然也是空格但是對(duì)應(yīng)的HTML代碼卻不是空格代碼。而是另外的代碼,因此Dreamweaver把他當(dāng)字符處理而不是空格。所以可以相安無(wú)事。但是在不支持中文字符集的瀏覽器看來(lái)就是亂碼了。3、 使用軟空格。即在要插入空格的地方按Ctrl+shift+空格。這樣的空格所有瀏覽器都能認(rèn)識(shí)。但是缺點(diǎn)是在頁(yè)面編輯的時(shí)候無(wú)法看見(jiàn)插入了多少空格,只能在瀏覽器預(yù)覽的時(shí)候才能看清楚。不夠直觀。軟空格其實(shí)使用的是代碼。是不間斷空距標(biāo)記。他可以生成軟空格。每按一下Ctrl+shift+空格就是增加一個(gè)代碼。代碼雖然簡(jiǎn)單,但是它的作用也很大。在做網(wǎng)頁(yè)時(shí)候我們空出一行或者幾行就要靠這個(gè)代碼來(lái)幫忙。學(xué)過(guò)HTML語(yǔ)言的朋友都知;;標(biāo)簽是用來(lái)標(biāo)記一個(gè)段落的。如果光寫;;這段代碼是不是就可以生成空行呢?這是無(wú)效的。必須在;標(biāo)簽中增加“;”代碼才行。; ;這樣的代碼才會(huì)有空行效果。這里該標(biāo)記也是起了占據(jù)位置的作用。另外如果用Dreamweaver生成一張表格,察看源代碼的時(shí)候會(huì)發(fā)現(xiàn)。
子1:(文本內(nèi)容中的連續(xù)空格)
<p>這段文本中,輸入連續(xù)的空格 大概輸入了十個(gè)。</p>
顯示效果:“格”和“大” 之間的是個(gè)空格顯示出來(lái)只是一個(gè)空格。
這段文本中,輸入連續(xù)的空格 大概輸入了十個(gè)。
例子2:(代碼之間的連續(xù)空格)
<span>span是一個(gè)行內(nèi)標(biāo)簽</span> <span>和前面的span元素之間隔了很多個(gè)空格</span>
顯示效果:兩個(gè)span元素之間連續(xù)的空格,顯示出來(lái)即"簽"與“和”之間的空格,只有一個(gè)空格。
span是一個(gè)行內(nèi)標(biāo)簽 和前面的span元素之間隔了很多個(gè)空格
上面兩個(gè)例子證明:HTML代碼中連續(xù)的空格在顯示時(shí)會(huì)顯示為一個(gè)空格,其余的多余的空格會(huì)被移除或者說(shuō)被忽略。
段落文本其實(shí)也是HTML代碼的一部分,只不過(guò)它在p標(biāo)簽內(nèi)部,而例子2的空格是在兩個(gè)span標(biāo)簽之間。
理解了空格,現(xiàn)在看看空行,同理
例子3:(文本內(nèi)容中的空行)
<p>這段文本中,輸入連續(xù)的空行
大概輸入了五行。</p>
顯示效果:如我們所見(jiàn),文本代碼中的五行空行,顯示出來(lái)也只是一個(gè)空格。
這段文本中,輸入連續(xù)的空行 大概輸入了五行。
例子4:(元素之間/標(biāo)簽之間的空行),只要把例子2中的空格換成空行就可以了,顯示效果和例子2的一樣,多行空行都只會(huì)顯示為一個(gè)空格。
<span>span是一個(gè)行內(nèi)標(biāo)簽</span>
<span>和前面的span元素之間隔了很多空行</span>
span是一個(gè)行內(nèi)標(biāo)簽 和前面的span元素之間隔了很多空行
得證:HTML 代碼中的所有連續(xù)的空格或空行(換行)都會(huì)被顯示為一個(gè)空格。
既然如此,如果我們希望擴(kuò)大兩個(gè)字符之間的間距,讓代碼中的連續(xù)空格或空行顯示出來(lái)的結(jié)果也是連續(xù)的空格或空行,那該怎么辦?其實(shí)很簡(jiǎn)單。
方法一:我們可以用預(yù)格式化標(biāo)簽<pre>,無(wú)論是空格或空行都適用。
<pre>
這是
預(yù)格式文本。
它保留了 空格
和換行。
</pre>
顯示效果
這是
預(yù)格式文本。
它保留了 空格
和換行。
方法二:我們可以用空格實(shí)體符 代替空格,用換行標(biāo)簽<br/>代替空行。雖然這種方法可以得到我們想要的顯示效果,但是對(duì)搜索引擎不是最友好的方式,因?yàn)?和<br/>在HTML中都是沒(méi)有語(yǔ)義的。所以建議盡量少用。另外需要注意的是, 必須小寫,而且最后面的分號(hào)是不能省略的。
方法三:(適合空格)使用全角空格
全角空格被解釋為漢字,所以不會(huì)被被解釋為HTML分隔符,可以按照實(shí)際的空格數(shù)顯示。
問(wèn)題:怎么使用全角輸入法?
以搜狗輸入法為例,我們通常使用的是半角輸入,其狀態(tài)欄中有個(gè)月亮的標(biāo)志,就說(shuō)明正在使用的是半角輸入,如果是太陽(yáng)的標(biāo)志,就說(shuō)明使用的是全角輸入。全角/半角的切換可以通過(guò)點(diǎn)擊標(biāo)志,也可以通過(guò)快捷鍵 Shift+Space(空格符)切換。
半角輸入(月亮)
全角輸入(太陽(yáng))
方法四:使用CSS樣式中字間隔屬性控制,CSS中的word-spacing 屬性可以改變字(單詞)之間的標(biāo)準(zhǔn)間隔。我們知道英文中兩個(gè)單詞之間是通過(guò)空格隔開(kāi)的,所以我們視覺(jué)上可以這樣認(rèn)為,word-spacing改變了(拉長(zhǎng)或縮短)單詞之間那個(gè)空格的寬度。
方法五:使用CSS樣式中的white-space 屬性,這個(gè)屬性聲明如何處理元素內(nèi)的空白符。
值 | 描述 |
normal | 默認(rèn)。空白會(huì)被瀏覽器忽略。 |
pre | 空白會(huì)被瀏覽器保留。其行為方式類似 HTML 中的 <pre> 標(biāo)簽。 |
nowrap | 文本不會(huì)換行,文本會(huì)在在同一行上繼續(xù),直到遇到 <br> 標(biāo)簽為止。 |
pre-wrap | 保留空白符序列,但是正常地進(jìn)行換行。 |
pre-line | 合并空白符序列,但是保留換行符。 |
white-space:normal;就是正常,和不設(shè)置一樣,連續(xù)空格和空行都只會(huì)顯示一個(gè)空格。
white-space:nowrap;不換行是什么意思呢?正常情況下,當(dāng)我們的文本超出了文本域,文本就會(huì)自動(dòng)折行,這個(gè)設(shè)置就是說(shuō)不自動(dòng)折行了,而是碰到換行標(biāo)簽<br />才換
white-space:pre;和方法一相同,將文本原樣輸出顯示。當(dāng)文本超出文本域時(shí),不換行,會(huì)產(chǎn)生滾動(dòng)條。
white-space:pre-wrap;保留空格和空行,但當(dāng)文本超出文本域時(shí),會(huì)自動(dòng)換行。
white-space:pre-line;連續(xù)的空格會(huì)顯示為一個(gè)空格,但保留連續(xù)的空行。
代碼示例
java復(fù)制代碼public static String generateContent(String content) {
// 將 content 進(jìn)行 url 編碼
String ans;
try {
ans = URLEncoder.encode(content, "UTF-8");
} catch (UnsupportedEncodingException e) {
// 處理異常情況
throw new RuntimeException(e);
}
return ans;
}
java復(fù)制代碼public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最終生成的 URL 的值為:" + ansUrl);
}
運(yùn)行結(jié)果:
perl復(fù)制代碼https://example.com/resource?a=%E5%B0%8F%E9%BB%91
粘貼到瀏覽器上會(huì)被瀏覽器解碼出來(lái)給用戶看到:
ini復(fù)制代碼example.com/resource?a=小黑
網(wǎng)頁(yè)截圖:
java復(fù)制代碼public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小 黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最終生成的 URL 的值為:" + ansUrl);
}
運(yùn)行結(jié)果:
perl復(fù)制代碼https://example.com/resource?a=%E5%B0%8F+%E9%BB%91
粘貼到瀏覽器上會(huì)被瀏覽器解碼出來(lái)給用戶看到:
ini復(fù)制代碼https://example.com/resource?a=小+黑
網(wǎng)頁(yè)截圖:
java復(fù)制代碼public static String generateContent(String content) {
// 將 content 進(jìn)行 url 編碼
String ans;
try {
// -----------------------調(diào)整-----------------------
ans = URLEncoder.encode(content, "UTF-8").replace("+", "%20");
} catch (UnsupportedEncodingException e) {
// 處理異常情況
throw new RuntimeException(e);
}
return ans;
}
public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小 黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最終生成的 URL 的值為:" + ansUrl);
}
運(yùn)行結(jié)果:
perl復(fù)制代碼https://example.com/resource?a=%E5%B0%8F%20%E9%BB%91
粘貼到瀏覽器上會(huì)被瀏覽器解碼出來(lái)給用戶看到:
ini復(fù)制代碼https://example.com/resource?a=小 黑
網(wǎng)頁(yè)截圖:
其中 %20 是空格經(jīng)過(guò)編碼后的結(jié)果
從上面的案例可以看到,如果 url 中有空格出現(xiàn),且不經(jīng)過(guò)特殊處理,那么將會(huì)導(dǎo)致瀏覽器無(wú)法正確解析 url,從而導(dǎo)致 url 重定向失敗,那么問(wèn)題的原因是什么呢?首先來(lái)看一下URL的組成部分
下面是一個(gè)簡(jiǎn)單的 URL 鏈接:
bash復(fù)制代碼http://localhost:8080/path/to/index.html?id=123#content
它主要有下面幾個(gè)部分組成
在 URL 編碼過(guò)程中,會(huì)遵循以下的規(guī)則:
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。