2011-01-09 45 views
15

Bất cứ khi nào tôi định dạng lại mã nguồn html trong Visual Studio với Ctrl-K, Ctrl-D nó định dạng mã nguồn của tôi như thế này:định dạng HTML trong Visual Studio 2010

<p> 
    text</p> 
<p> 
    more text</p> 

Làm thế nào tôi có thể làm cho nó sử dụng định dạng sau thay thế?

<p> 
    text 
</p> 
<p> 
    more text 
</p> 

Tôi biết rằng có cài đặt tại Options-> Text Editor -> Html -> Định dạng, nhưng tôi không thể tìm thấy phù hợp ở đó.

Cảm ơn,

Adrian

Edit: Tôi đã kiểm tra các thiết lập thẻ cụ thể, và ngắt trang cho p thẻ được thiết lập để "Trước khi mở cửa, bên trong, và sau khi đóng". Ngoài ra, bản xem trước nhỏ hiển thị chính xác định dạng mà tôi muốn có. Nhưng Visual Studio vẫn làm điều đó sai. Điều này có thể có bất cứ điều gì để làm với Resharper đang được cài đặt trên hệ thống của tôi?

Trả lời

19

vấn đề này có liên quan gì đến ReSharper. Đây là một tính năng của thiết kế của Visual Studio Source Formatter, nơi nó sẽ cố gắng không thay đổi ngữ nghĩa của một phần tử do các tùy chọn định dạng mà bạn chỉ định. Vì vậy, bạn đã xác định rằng bạn muốn thẻ p có dấu ngắt trong nội dung, nhưng ngắt sau thẻ ap sẽ thay đổi ngữ nghĩa của nội dung trong thẻ, do đó trình định dạng kết thúc bằng cách đặt thẻ đóng ngay sau Nội dung. Để có thẻ đóng trên một dòng riêng biệt, bạn sẽ cần phải thêm một khoảng trống ngay trước khi kết thúc nội dung và thẻ đóng.

Như vậy:

<p>content</p> 

sẽ sản xuất:

<p> 
    content</p> 

Trong khi (lưu ý sự bao gồm rõ ràng của một không gian giữa nội dung và các p thẻ đóng):

<p>content </p> 

sẽ sản xuất:

<p> 
    content 
</p> 

Điều này được thảo luận trong một số blog post bởi Scott Guthrie trong đoạn thứ 3 từ dưới cùng. Bắt đầu đếm từ đoạn ngay phía trên phần liên kết bổ sung.

+0

Tại sao thêm một khoảng trắng sau khi phần tử 'p' thay đổi ngữ nghĩa? Trình duyệt có xử lý các trường hợp này một cách khác nhau không? – knut

+0

có plugin nào để sửa lỗi này không? Vấn đề không gian này chỉ có hiệu ứng bố trí IE6, tôi nghĩ, và tôi sẽ có nó định dạng mã một cách chính xác. –

9

Nhấp vào Công cụ, Tùy chọn, Trình chỉnh sửa văn bản, HTML, Định dạng, Tùy chọn thẻ cụ thể.
Thêm thẻ Phía máy khách mới cho p (nếu chưa có thẻ này) và chọn Separate Closing tagBefore, within, and after closing.

+0

Cảm ơn bạn đã trả lời! Vui lòng xem chỉnh sửa của tôi ở trên ... –